Я пытаюсь реализовать интерфейс, для которого требуется одно свойство, но я не обращаю особого внимания на его тип. Например:C#: реализовать интерфейс с свойством любого типа
public interface IName
{
dynamic Name {get; set;}
}
Тогда, если у меня есть класс, я хотел бы реализовать интерфейс IName с типом строки:
public class Person : IName
{
public string Name {get; set;}
}
Это, однако, вызывает ошибку. Я знаю, что мог бы сделать интерфейс IName принятым общим аргументом IName<T>
, но это заставляет меня создавать кучу перегруженных функций, которые принимают IName<string>
, IName<NameObj>
, IName<etc>
вместо того, чтобы каститься в пределах одной функции.
Как я могу потребовать, чтобы класс содержал свойство?
Действительно ли тип возврата должен быть «любым объектом»? Каким будет код потребления, и как он будет обрабатывать буквально * любой возвращаемый объект *? Единственное, что вы действительно знаете, это методы в «Object», и если вы собираетесь использовать их, вы можете также сделать возвращаемый тип «Object». Я думаю, если это выброс или внутренний код, который вы планируете повторно использовать очень мало, тогда это может быть хорошо. Помимо этого, я предлагаю воспользоваться системой типов. –