C# object 判断值是否相同
来源:互联网 发布:request获取ip端口号 编辑:程序博客网 时间:2024/06/05 07:37
public bool Equal(T Model) { bool flag = false; Type t = this.GetType(); System.Reflection.PropertyInfo[] pros = t.GetProperties(); foreach (System.Reflection.PropertyInfo pro in pros) { if (pro.Name == "ID") { continue; }//判断值是否相同 object a = pro.GetValue(this, null); object b = pro.GetValue(Model, null); flag = ((a == null && b == null) || ((a != null && b != null) && (a.Equals(b)))); if (!flag) { break; } } return flag; }
一直都是使用下面这个表达式来判断对象的值是否相同,今天发现,就值相同,得到的flag也是false。如两边都是25,得到的值依然是false.
是什么原因呢?
原来,这个==不仅仅比较值,还比较内存地址。因为两个类所在的地址不同,一直不相等。所以比较值时请使用Equals这个方法来比较。
flag = (pro.GetValue(this, null) == pro.GetValue(Model, null));
0 0
- C# object 判断值是否相同
- 判断输入值与随机数是否相同
- 判断UIImage是否相同
- 判断字符串是否相同
- 判断二叉排序树是否相同
- 判断图片是否相同
- 判断两颗树是否相同
- 如何判断List<Object>中是否包含,一个有相同xxx某个属性实体类
- java 判断日期是否相同,只判断年月是否相同
- 判断两个日期是否相同
- 判断两个图片是否相同
- 判断是否有相同数字?
- 判断两个View是否相同
- Sring 字符串判断是否相同
- 判断翻转后是否相同
- 递归判断两棵树是否相同
- 判断两个字符串是否相同
- 100.判断树是否相同
- 基于综合兴趣度的协同过滤推荐算法
- python 2.7 自定义 RPM 编译[备忘]
- 山天大畜 (易經大意 韓長庚)
- 【深入Java虚拟机】之七:Javac编译与JIT编译
- List去重复帮助类
- C# object 判断值是否相同
- 在线存储的终极选择:Dropbox
- bind + dhcpd 实现 动态 ddns
- 调和级数 复杂度分析 学习笔记
- C指针原理(82)-内存管理与控制
- Codeforces 385D Bear and Floodlight(几何+dp)
- vs2008试用版在win7上无法转正的解决方法
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- Android Training精要(三)不同分辨率图片缩放倍数