摘要:
建议15: 使用dynamic来简化反射实现dynamic是Framework 4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译器默认dynamic对象支持开发者想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,也可以像如下这样进行代码的调用,编译器不会报错:dynamic dynamicObject = GetDynamicObject(); Console.WriteLine(dynamicObject.Name); Console.WriteLine(dynamicObject.Sampl.. 阅读全文
posted @ 2013-09-11 13:48
xust
阅读(233)
评论(0)
推荐(0)
摘要:
建议11: 区别对待==和Equals在开始本建议之前,首先要明确概念“相等性”。CLR中将“相等性”分为两类:“值相等性”和“引用相等性”。如果用来比较的两个变量所包含的数值相等,那么将其定义为“值相等性”;如果比较的两个变量引用的是内存中的同一个对象,那么将其定义为“引用相等性”。无论是操作符“==”还是方法“Equals”,都倾向于表达这样一个原则:对于值类型,如果类型的值相等,就应该返回True。对于引用类型,如果类型指向同一个对象,则返回True。下面的代码输出所遵循的就是以上原则:static void ValueTypeOPEquals() { int i = 1; ... 阅读全文
posted @ 2013-09-11 13:48
xust
阅读(187)
评论(0)
推荐(0)
摘要:
//方式一:使用 InvokeMember关键字,性能一般/// /// 验证数据字典是否有效/// /// 操作类/// 查找类/// 结果类/// /// public virtual bool ValidDict(string pFuncName, S pObj){ T instance = Activator.CreateInstance(); object[] mParam = new object[] { pObj }; IList mResult = (IList)instance.GetType().InvokeMember(String.IsNullOrEm... 阅读全文
posted @ 2013-09-11 13:21
xust
阅读(1124)
评论(0)
推荐(0)

浙公网安备 33010602011771号