C# this和base的使用

时间:2023-03-09 16:24:57
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();
}
}
}