Какой эффект имеет ключевое слово «new» в C # и почему это только предупреждение, когда оно не используется?
Рассмотрим следующий код:
public abstract class Test1
{
public object Data { get; set; }
}
public abstract class Test2<T> : Test1
{
public T Data { get; set; }
}
Это сгенерирует следующее предупреждение:
'Test2.Data' hides inherited member 'Test1.Data'. Use the new keyword if hiding was intended.
Почему это только предупреждение, и какой эффект приведет к добавлению & quot; нового & quot; ключевое слово есть?
Согласно моим испытаниям, я не могу найти никакой разницы после того, как & quot; новый & quot; Ключевое слово добавлено.
Не поймите меня неправильно, я все за откровенность, но мне было любопытно, как добавить «новый».
Мои единственные мысли о том, что это может быть:
Improved human readability Some saving at run-time when the compiler isn't left to figure the inevitable out the long way around