【发布时间】:2023-03-31 15:04:01
【问题描述】:
今天,我在遗留代码中发现了一些东西。它具有一项功能的“静态新”。看起来像这样。
class Foo
{
public static void Do()
{
Console.WriteLine("Foo.Do");
}
}
class Bar: Foo
{
public static new void Do()
{
Console.WriteLine("Bar.Do");
}
}
我不理解 Bar 类中 Do 方法的 static new 修饰符。在 C# 中,静态方法只能使用类名而不是对象名来调用。所以,我认为拥有“新”和没有“新”之间没有任何区别。
通常,如果某些语法是不必要的,C# 只是将其视为错误。 有人知道为什么 C# 允许这样的语法吗?
【问题讨论】:
标签: c# static new-operator modifier