C# 关键字---new 修饰符

在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。 隐藏继承的成员时,该成员的派生版本将替换基类版本。 虽然可以在不使用 new 修饰符的情况下隐藏成员,但会生成警告。 如果使用 new 显式隐藏成员,则会取消此警告,并记录要替换为派生版本这一事实。

若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new 修饰符修饰该成员。

对同一成员同时使用 new 和 override 是错误的做法,因为这两个修饰符的含义互斥。 new 修饰符会用同样的名称创建一个新成员并使原始成员变为隐藏的。

在隐藏继承成员的声明中不使用 new 修饰符将会生成警告。

MSDN的简单示例:

public class BaseC
{
public static int x = 55;
public static int y = 22;
}

public class DerivedC : BaseC
{
// Hide field 'x'.
new public static int x = 100;

static void Main()
{
// Display the new value of x:
Console.WriteLine(x);

// Display the hidden value of x:
Console.WriteLine(BaseC.x);

// Display the unhidden member y:
Console.WriteLine(y);
}
}

/*
Output:
100
55
22
*/


 

posted @ 2011-11-20 22:46  Jason#Li  阅读(170)  评论(0编辑  收藏  举报