C#学习笔记之Object类

发布时间:2020-09-30编辑:脚本学堂
本文介绍下,C#中有关object类的相关知识,有需要的朋友,参考下吧。

1,NET类都派生于System.Object,没有指明继承情况下,编译器会自动假定,这个类派生于Object。实际上这个派生是间接的,首先派生于System.ValueType,System.ValueType派生于Object。

2,其重要性在于除了访问自己定义的方法和属性外,还可以访问Object定义公共或受保护的成员方法。

3,Object类的方法,

     ToString() ,这个就不用多说了,实际上ToString在数据格式化方面还是有许多限制的,更专业的表示,可以实现IFormattable接口。

     GetHashTable()方法,如果对象在散列表或者字典的数据结构中,可以使用这个方法确定该对象应放在结构的什么位置。

     Equals()和ReferenceEquals()

     Finalize()方法,Object类的Finalize方法实际是空的,会被垃圾回收器忽略,但因为垃圾回收器只负责托管对象的的管理,如果对象拥有未托管资源的引用,就必须要重写Finalize方法,在该对象被删除时,调用该重写Finalize方法以删除该引用。

     GetType()方法。

     MemberwiseClone()方法。该方法只是复制对象,返回一个浅表复制,它只复制类中所有值类型,如果类中内嵌引用,就只复制引用,而不复制引用的对象,该方法不能重写。

如下,MemberwiseClone只能在类的内部使用,或者子类中使用。因为这是个保护类型。这里只是类子,这样用的时候不是很多,集体情况具体分析。
   

复制代码 代码示例:

class windowForm
    {
        public int Left;
        public int Right;

        public windowForm()
        {
            windowForm win = new windowForm(2, 2);

            object obj = win.MemberwiseClone();

            Console.WriteLine((obj as windowForm).Left); 
        }

        public windowForm(int left, int right)
        {
            this.Left = left;
            this.Right = right;
        }
    } 

4,  见下例,结果是“yellow”;
Object.ToString()方法声明为虚类型,Colors枚举是一个派生于System.Enum的结构,System.Enum中已经实现ToString的重写
 

复制代码 代码示例:

enum Colors { red,orange,yellow };
    class Program
    {
        static void Main(string[] args)
        {
            Colors myColor = Colors.yellow;
            string str = myColor.ToString();

        }
    }

5,在自己的类中重写Tostring方法
只需要加上override声明重载
 

复制代码 代码示例:
public override string ToString()
{
   return "自己的内容";
}

就是这些了,C#学习笔记之object类,希望对大家有所帮助。