C#==>Object类

来源:互联网 发布:ip网络视频监控系统 编辑:程序博客网 时间:2024/05/22 02:46

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 "自己的内容";
        }

 

原创粉丝点击