Сегодня я нашел что-то в устаревшем коде. Он имеет «статическое новое» для одной функции. Похоже на это.
class Foo
{
public static void Do()
{
Console.WriteLine("Foo.Do");
}
}
class Bar: Foo
{
public static new void Do()
{
Console.WriteLine("Bar.Do");
}
}
Я не понимаю статический новый модификатор для метода Do в классе Bar . В C # статический метод может быть вызван только с именем класса вместо имени объекта. Так что я не думаю, что есть какая-то разница между «новым» и нет.
Обычно, если какой-то синтаксис не нужен, C # просто считает, что это ошибка.
Кто-нибудь имеет представление о том, почему C # позволяет такой синтаксис?