首页 > Python基础教程 >
-
C#教程之C#知识拾遗
参数验证方式
1. 一般方法
1.1 手动验证
最为普遍常见,略。
1.2 使用扩展方法验证
在C#3.0 中,引入了扩展方法,可以以一种更优雅的方式来进行参数验证,如:
2. 使用类型或框架
使用类库
如FluentValidation,CuttingEdge.Conditions,Enterprise Liberary(Validation Application Block组件),Code Contracts(.NET 4.0正式引用)等。
2.2 使用框架
如ASP.NET MVC的Model中数据标记(Data Annotations) 属性。
参考资料:C# 中参数验证方式的演变
全角与半角字符转换
全角空格为12288,半角空格为32,其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248。基于此便不难实现他们之间的转换:
参考资料:C#全角和半角转换
转string时,null的处理:
Convert.ToString能处理字符串为null的情况。ToString方法不能处理字符串为null的情况,会抛出异常。
string/byte[]/MemoryStream/Base64String的相互转换
关系如下图:
1.字符串转比特数组
(1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串");
(2)byte[] bt=Convert.FromBase64String("字符串");
2.字符串转流
(1)MemoryStream ms=new MemoryStream(System.Text.Encoding.Default.GetBytes("字符串"));
(2)MemoryStream ms=new MemoryStream(Convert.FromBase64String("字符串"));
3.流转比特数组
(1)byte[] bt=ms.ToArray();
(2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);
4.流转字符串
(1)string str=Convert.ToBase64String(ms.ToArray());
(2)string str=System.Text.Encoding.Default.GetString(ms.ToArray());
5.比特数组转字符串
(1)string str=System.Text.Encoding.Default.GetString(bt);
(2)string str=Convert.ToBase64String(bt);
6.比特数组转流
(1)MemoryStream ms=new MemoryStream(bt);
(2)MemoryStream ms=new MemoryStream();ms.Read(bt,0,bt.Lenght);
参考资料:字符串string 、byte[]、MemoryStream、Base64String的相互转换
c# 反射Invoke调用方法获得out带出的值
输出参数在最后,基于些获取方法如下:
1 var msg = string.Empty; 2 object[] parameters = new object[] { model, null }; 3 4 //函数签名为public bool Update(DB_BedInfo model, out string mess); 5 updateMethod.Invoke(serviceObj, parameters); 6 7 //parameters[1]即为out带出的值 8 msg = Convert.ToString(parameters[1]);
具名参数和可选参数
具名参数 和 可选参数 是 C# 4.0 出来的新特性。当有多个可选参数,前面的可选参数不想传时,可使用具名参数解决。