在界面中,我看到了以下内容
public interface ITest : ITestBase
{
new string Item { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想在这里知道"新"的含义.
Øyv*_*hen 13
属性或方法前面的新关键字用于隐藏非虚拟的父类中具有相同名称的成员,并且被许多(包括我)认为是不良做法,因为在许多情况下它可能不会给出你期望的结果.
一个例子:
class A{
public int Test(){ return 1; }
}
class B : A{
public new int Test(){ return 2; }
}
B b = new B();
Console.WriteLine( b.Test() );
A b2 = new B();
Console.WriteLine( b2.Test() );
Run Code Online (Sandbox Code Playgroud)
这将分别打印2和1,并且令人困惑,因为这两个对象实际上都是B类.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |