- 博客(58)
- 资源 (7)
- 问答 (3)
- 收藏
- 关注
原创 C# 克隆类 CloneHelper
C# 克隆类 CloneHelper/// /// 克隆/// 尹永贤/// yinyongxian@qq.com/// 2017-7-5 17:25:44/// public static class CloneHelper{ #region 克隆 public static T DeepClone(T sourceData) { try
2017-07-06 12:55:50
1702
原创 C# BinaryFormatter序列化对象保存后,不能改变命空间
BinaryFormatter序列化一个对象,保存成配置文件。重构代码时,修改了对象的命名空间,导致BinaryFormatter反序列化异常:System.Runtime.Serialization.SerializationException: '无法加载进行反序列化所需的类型 XXX因此尽量不用BinaryFormatter序列化文件保存,以免后期重构是出现异常;采用和命空间件无
2017-06-01 11:49:12
1931
原创 尽量不用基本类型作为标识
当需要一个标志的时候,比如一个编号,人可能最先想到int等其他数值类型作为ID就可以了,这样会有一些问题。只应该是初级程序员才干的事情。假如一段时间之后,想改变标志的类型(int -> string), 程序中可能已有了大量的用int传递标志的部分,你就要修改所有相关地方的标志类型。所以要自定义一个类型(XXId),只需修改类型内部的属性即可,避免大范围的修改。同时自定义类
2017-05-30 09:30:06
353
原创 数据库尽量不用字符串存储非字符串数据
数据库存储的非字符串数据应该和代码或者界面数据分离,不要过分强调数据库数据的可读性。Eg:枚举存储enum Switch{ 开启, 关闭}可以存储Switch为“开启/关闭”的字符串,也可以存储为“0/1"的数值。假如下一个版本要将Switch更改为enum Switch{ 启用, 禁用}存储为“0/1"的数值的可以自动适应,存储Swit
2017-05-17 12:44:46
1419
原创 批处理获文件版本号
set batPath =%~dp0for /f "skip=1 tokens=2 delims==" %%i in ( 'wmic datafile where "name='%batPath :\=\\%HiveNMSClient.exe'" get Version /format:list') do for /f "delims=" %%v in ("%%i") do set "v
2017-05-11 15:41:02
3227
原创 C# 获取内网或公网IPAddress
内网IPAddresspublic static string InternalNetworkIpAddress{ get { var iPAddresses = Dns .GetHostAddresses(Dns.GetHostName()) .Where(ip =>
2017-03-11 10:04:42
2269
原创 C# 获取子类和实现接口的类
获取一个Assembly下的子类var bases = Assembly .GetExecutingAssembly() .GetTypes() .Where(item => item.IsSubclassOf(typeof(Base)) ) .Select(type => (Base)Activato
2017-02-17 19:26:30
6806
原创 SpeechSynthesizer 读取文字
using System;using System.Linq;using System.Speech.Synthesis;namespace SpeechSynthesizerDemo{ class Program { private static void Main(string[] args) { using (var
2017-02-08 13:44:11
3827
原创 AsParallel()没有多线程执行,要用 AsParallel().ForAll(...)
using System;using System.Linq;using System.Threading;namespace YYX.CATest{ static class Program { private static int Main() { var digitals = Enumerable.Range(0,
2016-12-28 13:33:19
5243
2
原创 Windows上C# 执行Cmd命令
using System;using System.Diagnostics;namespace YYX.CATest{ /// <summary> /// 尹永贤 /// 2016-12-25 12:09:49 /// yinyongxian@qq.com /// </summary> class Cmd : IDisposable {
2016-12-25 12:13:00
3100
原创 配置文件-软件一大杀手
软件升级过程中,要保留用户的软件配置。软件升级后配置文件的内容可能变化,防止变化的内容造成软件出现异常。需求更改前:SNMP响应时间配置范围是1到100s,响应询问次数是1到10次。 用户配置: 30s, 5次;配置文件类更改前:[Serializable]class SnmpSettings{ internal static readonly string DefaultFileP
2016-12-05 15:38:23
659
原创 Enum 常用类 EnumHelper
EnumHelperusing System;using System.Linq;namespace YYX.CATest{ static class Program { private static void Main() { var names = EnumHelper.GetNames<Week>();
2016-11-25 09:57:20
1767
原创 邮件发回软件错误信息
设置捕获未处理异常列表内容//处理未捕获的异常Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理“UI线程”异常 Application.ThreadException += application_ThreadException; //处理“非UI线程”异常 AppDoma
2016-11-24 19:35:05
953
原创 判断哪个修改键(Shift、Ctrl 和 Alt)处于按下状态的值。
修改键/// <summary>/// 获取一个表示哪个修改键(Shift、Ctrl 和 Alt)处于按下状态的值。/// </summary>/// /// <returns>/// <see cref="T:System.Windows.Forms.Keys"/> 值的按位组合。默认值为 <see cref="F:System.Windows.Forms.Keys.None"/>。
2016-09-14 15:10:54
3311
原创 Func<T, ..., TResult> 委托 实现方法嵌套
Funcprivate static void Main(string[] args) { Func<int, int, int, int> Recursion = null; Recursion = (start, end, result) => { if (start > en
2016-05-19 14:57:46
1432
原创 Wireshark包使用Colasoft Packet Player重发
1.Wireshark包另存为:2.Add进Colasoft Packet Player,点击Play即可。
2016-04-23 17:31:48
4130
原创 mysql数据库批量快速插入
执行mysql数据库数据库插入多条数据时,写成如下格式很费时:INSERT INTO 表名 VALUES (值A1, 值A2);INSERT INTO 表名 VALUES (值B1, 值B2);......INSERT INTO 表名 VALUES (值XX, 值XX);写成如下形式可提高效率:INSERT INTO 表名 VALUES (值A1, 值A
2016-04-10 16:36:01
467
原创 C# 获取字符串对应变量名
this.GetType().GetField("portName" + i.ToString()).GetValue(this).ToString()
2015-12-20 09:59:33
3462
1
原创 C# 变量改变事件
C# 变量改变事件public event EventHandler isChanged; private void RaiseisChanged() { var handler = isChanged; if (handler != null) {
2015-12-04 14:40:31
2067
原创 C# 快速创建线程
C# 快速创建线程Thread T = new Thread(() => { NewMethod(); }); T.Start();
2015-12-02 14:38:35
2043
原创 DataGridView 选中一行不变色
private void textGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { e.CellStyle.SelectionForeColor = e.CellStyle.ForeColor; e.CellStyle.Sel
2015-12-01 16:02:49
2911
原创 C# 判断当前用户是否是管理员
判断当前用户是否是管理员using System;using System.Security.Principal;namespace YYX.CATest{ class Program { public static void Main() { WindowsIdentity id = WindowsIdentit
2015-11-24 10:04:18
2045
原创 C#读取本机IP
C#读取本机IPusing System;using System.Data;using System.Linq;using System.Net;namespace YYX.CATest{ class Program { public static void Main() { string hostName
2015-11-23 17:32:22
326
原创 datagridview 一个单元格显示文字和图片
datagridview 一个单元格显示文字和图片文字超出时显示...private void dgv_Test_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) {/**/ if (e.ColumnIndex >= 0 && e.RowIndex = 0)
2015-10-21 14:00:48
5490
原创 Stopwatch 监测一段时间内一个任务是否完成
Stopwatch 监测一段时间内一个任务是否完成Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); try
2015-08-26 16:36:08
470
原创 Label文字颜色
Label文字颜色using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Forms;using System.Drawing;using System.ComponentModel;using LT.Common.Drawing
2015-08-18 14:22:51
773
原创 监视串口变动
监视串口变动thread = new Thread(Watch) { IsBackground = true }; thread.Start();private static bool TryGetPortNames(out IEnumerable
2015-08-11 17:58:53
447
原创 enum添加到combobox和获取
enum添加到combobox和获取 comboBox_MessageType.Items.AddRange(Enum.GetNames(typeof(MessageType))); get { return (MessageType) Enum.Parse(typeof (MessageType), comboBox_MessageType.
2015-08-10 09:36:02
2401
原创 自定义控件添加事件
自定义控件添加事件using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Windows.Forms;name
2015-08-10 08:59:53
447
原创 读注册表获取程序安装路径
读注册表获取程序安装路径private static string ExePath { get { try { return Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"
2015-07-31 16:36:04
3108
2
原创 Tuple用例
啊额个合格/// /// 获取网络分组的所有设备. /// /// /// private Tuple> GetAllDeviceIdByNetworkGroup(TopolItemId picId) { List DeviceIdList = new List();
2015-07-16 16:16:28
288
原创 checkbox datagridview全选
checkbox datagridview全选:/// /// 全选. /// /// /// private void chb_SelectAll_Click(object sender, EventArgs e) { foreach (DataGridViewRo
2015-07-16 09:12:37
381
C# 如何获取Panel背景图片的矩形。
2016-11-11
除版本库不同还有什么原因会影响String.GetHashCode() (C#)结果?
2016-10-28
mysql 创建/删除表或更改表结构 “事务”回滚 不生效。
2016-09-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人