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 文档教程大汇总!
- 下一篇: 收费网站还上吗?