e心e意

导航

C# this和base的使用

namespace THISORBASE
{
    //参考地址:http://blog.sina.com.cn/s/blog_7300c7d90100rs20.html
    /*这个时候,派生类和基类的_str被区分开了,
     * 派生类定义了一个自己_str(注意定义的时候,
     * 请加上new关键字,虽然不加也可以编译通过,
     * 但是推荐加上),这样this真正的价值得到了体现。
     * this,指向到了派生类对象的自己定义的字段。
     * base才是指向的基类的字段。这就是C#.net 里 this和base的真正意义。
*/
    public class Father
    {
        protected string _str = "父亲对象字符串的初始值";
        public Father()
        {
            this._str = "父亲对象构造函数该变量字符串初始值";
        }
    }
    public class Son : Father
    {
        private new string _str = "子类对象字符串初始值";
        public Son()
        {
            base._str = "子类对象构造函数修改父类初始化";
        }
        public string PrintStr_this()
        {
            return this._str;
        }
        public string PrintStr()
        {
            return _str;
        }
        public string PrintStr_base()
        {
            return base._str;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Son myobj = new Son();
            Console.WriteLine(myobj.PrintStr_this ());
            Console.WriteLine(myobj .PrintStr() );
            Console.WriteLine(myobj .PrintStr_base() );
            Console.Read();
        }
    }
}

 

posted on 2014-12-05 17:13  e心e意  阅读(903)  评论(0编辑  收藏  举报