Как Вы переопределяете ToString в статическом классе?

Поскольку Laravel Nova - это просто интерфейс для манипулирования моделями Eloquent, я бы сделал это, используя Laravel Events и Observers .

10
задан Keith Sirmons 10 November 2008 в 16:54
поделиться

3 ответа

Да, использование "нового" модификатора эффективно заставит предупреждение компилятора замолчать, но Вы явно скрываете метод экземпляра со статическим методом. (Это отличается, чем переопределение метода.) Обычно Вы не хотите скрывать метод экземпляра кроме с очень серьезными основаниями, и Вы действительно не должны скрывать его со статическим методом, поскольку тот действительно изменяет семантику поведения вызова. Каждый объект в.NET имеет метод экземпляра под названием ToString (), который имеет определенное поведение, которое ожидают разработчики; путем сокрытия того поведения с новым статическим методом Вы изменяете то ожидание, которое может привести к большому количеству беспорядка.

Кто Вы "к строковому представлению"? Статические классы обычно не содержат внутреннее состояние, таким образом, действительно не должно быть никаких внутренних данных для обеспечения как логический вывод ToString () вызов. Можно хотеть заново продумать дизайн класса или обеспечить другое имя метода, которое более ясно указывает на цель метода, не скрывая экземпляр ToString ().

13
ответ дан 3 December 2019 в 20:44
поделиться

В статическом классе Вы не можете переопределить ToString..ToString, метод экземпляра, и по определению статический класс может только иметь статических участников.

Также, почему Вы хотели бы переопределить.ToString ()? Нет никакого способа получить экземпляр класса и следовательно никакого способа вызвать функцию.

Примечание: Используя новый синтаксис не переопределит.ToString. Это создаст нового участника, который абсолютно не связан с Объектом. ToString () метод.

3
ответ дан 3 December 2019 в 20:44
поделиться

Хорошо, таким образом, в задавании вопроса, я нашел ответ:

Новый Модификатор:

http://msdn.microsoft.com/en-us/library/51y09td4 (По сравнению с 71) .aspx#vclrfnew_newmodifier

вот метод теперь:

общедоступная новая статическая строка ToString ()

Спасибо, Keith

2
ответ дан 3 December 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: