我读过一篇关于这个new关键字的文章.它说它用于隐藏方法.这是他们给出的例子:
using System;
namespace ConsoleApplication3
{
class SampleA
{
public void Show()
{
Console.WriteLine("Sample A Test Method");
}
}
class SampleB:SampleA
{
public void Show()
{
Console.WriteLine("Sample B Test Method");
}
}
class Program
{
static void Main(string[] args)
{
SampleA a = new SampleA();
SampleB b = new SampleB();
a.Show();
b.Show();
a = new SampleB();
a.Show();
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
样品A测试方法
样品B测试方法
样品A测试方法
所以我的问题不是new用于实例化对象的关键字?它用于为新创建的对象分配内存?那么如何使用它来隐藏方法呢?上面的例子是正确的吗?
new用于3种不同的东西.你可以说有3个不同的关键字具有相同的名称.
new object();它是一个修饰符,用于隐藏基类成员的继承成员.例:
class Base {
public void MyMethod() {
//Do stuff
}
}
class Derived : Base {
public new void MyMethod() {
//Do other stuff
}
}
Run Code Online (Sandbox Code Playgroud)它是泛型类型约束,用于指示泛型类型参数具有无参数构造函数.例:
class MyGenericClass<T> : where T : new() { ... }
Run Code Online (Sandbox Code Playgroud)来源:新的
| 归档时间: |
|
| 查看次数: |
2736 次 |
| 最近记录: |