我正在尝试实现一个需要单个属性的接口(interface),但我并不明确关心它是什么类型。例如:
public interface IName
{
dynamic Name {get; set;}
}
然后,如果我有一个类,我想用一种字符串类型实现 IName 接口(interface):
public class Person : IName
{
public string Name {get; set;}
}
然而,这会引发错误。我知道我可以让接口(interface) IName 采用通用参数
IName<T>
但这迫使我创建一堆重载函数,这些函数采用 IName<string>
、 IName<NameObj>
、 IName<etc>
而不是在单个函数中进行转换。我怎样才能要求一个类包含一个属性?
最佳答案
我现在无法对此进行测试,但也许您可以明确实现该接口(interface)。
public class Person : IName
{
public string Name {get; set;}
dynamic IName.Name {
get { return this.Name; }
set { this.Name = value as string; }
}
}
关于C#:实现具有任何类型属性的接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4704230/