我正在尝试实现一个需要单个属性的接口(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/

10-09 07:29