Object类的用法(一)
生活随笔
收集整理的這篇文章主要介紹了
Object类的用法(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
using System;
using System.Collections.Generic;
using System.Text; namespace Object.ReferenceEquals_方法
{
??? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? A x = new A();
??????????? A y = new A(); //A x = null;
??????????? //A y = null; //A x; //與上面加null的不等價? 提示錯誤是:使用了未賦值的局部變量“x"
??????????? //A y; //與上面加null的不等價
??????????? //public static bool ReferenceEquals
??????????? //? (
??????????? //??? Object objA,
??????????? //??? Object objB
??????????? //? ) //確定指定的 Object 實例是否是相同的實例。
??????????? //如果 objA 是與 objB 相同的實例,或者如果二者都為空引用,則為 true;否則為 false。 bool m =object.ReferenceEquals(x, y); //等價于bool m =A.ReferenceEquals(x, y);同下面的Equals方法
??????????? Console.WriteLine(m);?????????? //還等價于 bool m = B.ReferenceEquals(x, y);?
??????????? bool n = Program.Equals(x, y);?? //這里有點奇怪可以把Program換成A,也可以把Program去掉,等價于n =x.Equals(y);
??????????? Console.WriteLine(n);
??????????
??????????
??????????
??????????? x = y;
??????????? n =object.Equals(x, y);? //等價于n =A.Equals(x, y); 還等價于n =x.Equals(y);
??????????? Console.WriteLine(n);
??????????? Console.ReadKey();
??????? }
??? }
??? class A{}
?????
??? class B{}
???
} //對于類的實例的比較,這三種方法是作用是一樣的,都是比較引用
//所有的類和結構(包裹自定義的)都具有Equals(帶一個參數的,Equals(帶兩個參數的),GetHashCode,GetType,ReferenceEquals,ToString 六個方法 //所有的類和結構(包裹自定義的)的Equals(帶兩個參數的),ReferenceEquals和GetType方法都是從Object類繼承的,因為他們不是虛擬方法
//所以這3個方法一定不是重寫的,而其他三個方法都是虛擬的,可以重寫。其中Equals(帶兩個參數的)和ReferenceEquals是靜態方法,而GetType方法是實例方法 //Equals(帶一個參數的,Equals(帶兩個參數的)和ReferenceEquals方法的返回值類型為bool
//GetType方法返回值類型為System.Type
//GetHashCode方法返回值類型為int 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
using System.Collections.Generic;
using System.Text; namespace Object.ReferenceEquals_方法
{
??? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? A x = new A();
??????????? A y = new A(); //A x = null;
??????????? //A y = null; //A x; //與上面加null的不等價? 提示錯誤是:使用了未賦值的局部變量“x"
??????????? //A y; //與上面加null的不等價
??????????? //public static bool ReferenceEquals
??????????? //? (
??????????? //??? Object objA,
??????????? //??? Object objB
??????????? //? ) //確定指定的 Object 實例是否是相同的實例。
??????????? //如果 objA 是與 objB 相同的實例,或者如果二者都為空引用,則為 true;否則為 false。 bool m =object.ReferenceEquals(x, y); //等價于bool m =A.ReferenceEquals(x, y);同下面的Equals方法
??????????? Console.WriteLine(m);?????????? //還等價于 bool m = B.ReferenceEquals(x, y);?
??????????? bool n = Program.Equals(x, y);?? //這里有點奇怪可以把Program換成A,也可以把Program去掉,等價于n =x.Equals(y);
??????????? Console.WriteLine(n);
??????????
??????????
??????????
??????????? x = y;
??????????? n =object.Equals(x, y);? //等價于n =A.Equals(x, y); 還等價于n =x.Equals(y);
??????????? Console.WriteLine(n);
??????????? Console.ReadKey();
??????? }
??? }
??? class A{}
?????
??? class B{}
???
} //對于類的實例的比較,這三種方法是作用是一樣的,都是比較引用
//所有的類和結構(包裹自定義的)都具有Equals(帶一個參數的,Equals(帶兩個參數的),GetHashCode,GetType,ReferenceEquals,ToString 六個方法 //所有的類和結構(包裹自定義的)的Equals(帶兩個參數的),ReferenceEquals和GetType方法都是從Object類繼承的,因為他們不是虛擬方法
//所以這3個方法一定不是重寫的,而其他三個方法都是虛擬的,可以重寫。其中Equals(帶兩個參數的)和ReferenceEquals是靜態方法,而GetType方法是實例方法 //Equals(帶一個參數的,Equals(帶兩個參數的)和ReferenceEquals方法的返回值類型為bool
//GetType方法返回值類型為System.Type
//GetHashCode方法返回值類型為int 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Object类的用法(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求之不得的 Java 文档教程大汇总!
- 下一篇: 收费网站还上吗?