Почему переопределяет статический метод, а также в C#C#

Место общения программистов C#
Ответить
Anonymous
 Почему переопределяет статический метод, а также в C#

Сообщение Anonymous »

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»