Код: Выделить всё
protected static new void WhyIsThisValidCode()
{
}
< /code>
Почему вам разрешено переопределять статические методы? Возьмите следующие классы: < /p>
class BaseLogger
{
protected static string LogName { get { return null; } }
public static void Log(string message) { Logger.Log(message, LogName); }
}
class SpecificLogger : BaseLogger
{
protected static string LogName { get { return "Specific"; } }
}
< /code>
Это разрешено, и код < /p>
SpecificLogger.Log("test");
он вызывает logger.log с logname = null .
Так почему это разрешено?
Подробнее здесь: https://stackoverflow.com/questions/419 ... in-c-sharp
Мобильная версия