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