[SerializableAttribute]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
public class Object
1 public virtual bool Equels (Object)
2 public static bool static Equels (Object,Object)
默认实现为对引用类型使用引用相等,对值类型使用二进制按位相等。引用相等性是指进行比较的多个对象引用所引用的是同一个对象。按位相等性是指进行比较的多个对象具有相同的二进制表示形式。派生类可以通过继承实现值相等。
派生equals必须遵循的几个原则
1 x.equals(x)必须为true;,2 x.equals(y)和y.equals(x)必须返回相同值 3 如果x,y都是NaN,则x.Equals(y)返回true.
4 x.equals(z)=true,当且仅当x.equals(y)=true&&y.Equals(z)=true 5 x.Equals(Null)为false 6 不改变x,y指向的对象,x.Equals(y)返回值不变
Equals的实现不可以引发异常,实现IComparable类型,必须重写Equals.重写Equals必须也重写GetHashCode.
3 public virtual int GetHashCode()
特点: 如果两个对象相等,则hashcode必须相等。反过来不一定成立
4 public Type GetType()
表示当前实例的确切运行时类型
5 public static bool ReferenceEquals(Object,Object) - 如果两者是同一个实例,或者都为空返回true,否则false;
6 Protected Object MemberwiseClone () - 拷贝当前对象的非静态成员,值类型进行逐位复制,引用类型则拷贝引用。
使用ICloneable接口实现深层复制
[ComVisibleAttribute(true)]
Public Interface ICloneable
1 Object Clone()
[SerializableAttribute]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.None)]
public abstract class Type:MemberInfo,_Type,IReflect
1 public static readonly char Delimiter = .
2 Public static readonly Object Missing = 返回system.reflection.missing 对象
3 public static readonly MemberFilter FilterNameIgnoreCase = 返回