C#中Object类内的方法
object类内存在多个成员方法各自有不同的作用具体如下namespace ConsoleApp15 { class Test { public int i 1; public Test2 t2 new Test2(); //MemberwiseClone()在object类内为protected类型,在子类里公有化重写后返回对应的Test克隆对象 public Test Clone() { return MemberwiseClone() as Test; } public override string ToString() { return 自定义ToString函数; } } class Test2 { public int i 2; } class Program { static void Main(string[] args) { //静态方法 //Equals()用于比较两个值类型或引用类型之间是否等同 Console.WriteLine(object.Equals(1, 1)); Test t new Test(); Test tEquals new Test(); Console.WriteLine(object.Equals(t, tEquals)); //ReferenceEquals()用于比较引用类型对象之间是否等同是否指向同一个引用 Console.WriteLine(ReferenceEquals(t,tEquals)); //成员方法 //GetType()用于获取对象运行时的类型 Test t3 new Test(); Type type t3.GetType(); //MemberwiseClone()用于获取对象的浅拷贝对象浅拷贝对象中的引用变量与原对象一致 Test tClone t.Clone();//在Test类里采用public方法调用MemberwiseClone() Console.WriteLine(t.i t.i); Console.WriteLine(t.t2.i t.t2.i); Console.WriteLine(tClone.i tClone.i); Console.WriteLine(tClone.t2.i tClone.t2.i); tClone.i 20; tClone.t2.i 21; Console.WriteLine(t.i t.i); Console.WriteLine(t.t2.i t.t2.i); Console.WriteLine(tClone.i tClone.i); Console.WriteLine(tClone.t2.i tClone.t2.i); /* 总结来说就是利用克隆方法返回的浅拷贝对象当该浅拷贝对象 中的值类型变量发生变化后不会影响原本被克隆对象中的对应变量 而浅拷贝对象中的引用类型发生变化后原对象中的引用类型也随之改变 */ //虚方法 //虚方法Equals()用于比较引用类型之间的等同允许被自定义修改 //虚方法GetHashCode()用于返回对象的哈希码允许自定义重写哈希算法 //虚方法ToString()返回对象当前代表的字符串默认返回命名空间名.类名允许自定义 Random r new Random(); Console.WriteLine(r); Console.WriteLine(t);//自定义ToString()函数 } } }

相关新闻

最新新闻

日新闻

周新闻

月新闻