(Я работаю в бета-версии .NET 4.0, C #.)
У меня есть интерфейс, и все классы, производные от этого интерфейса, должны реализовывать пользовательскую логику ToString()
. Это принудительно? Если да, то как?
(Я работаю в бета-версии .NET 4.0, C #.)
У меня есть интерфейс, и все классы, производные от этого интерфейса, должны реализовывать пользовательскую логику ToString()
. Это принудительно? Если да, то как?
Не через интерфейс.
Для этого вам понадобится абстрактный класс.
-- Редактировать
Вы можете просто повторно объявить ToString как абстрактный:
abstract class Foo
{
public override abstract string ToString ();
}
ToString()
, то вы подразумеваете более сильный контракт дляToString()
, чем тот, который обычно используется. Если да, то, возможно, определение отдельного метода, а не повторное использованиеToString()
для ваших целей, будет лучшим выбором. - person Pavel Minaev   schedule 26.08.2009ToString()
для любого класса типаIMyInterface
, вы получите что-то, связанное с уникальным типом данных, который должен содержать каждыйIMyInterface
, а не просто с обычной реализацией, которая дает вам что-то как и название класса IIRC. - person Domenic   schedule 27.08.2009