摘要:
建议11: 区别对待==和Equals在开始本建议之前,首先要明确概念“相等性”。CLR中将“相等性”分为两类:“值相等性”和“引用相等性”。如果用来比较的两个变量所包含的数值相等,那么将其定义为“值相等性”;如果比较的两个变量引用的是内存中的同一个对象,那么将其定义为“引用相等性”。无论是操作符“==”还是方法“Equals”,都倾向于表达这样一个原则:对于值类型,如果类型的值相等,就应该返回True。对于引用类型,如果类型指向同一个对象,则返回True。下面的代码输出所遵循的就是以上原则:static void ValueTypeOPEquals() { int i = 1; ... 阅读全文
摘要:
//方式一:使用 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... 阅读全文