C#:实现具有任何类型属性的接口

Jam*_*mes 3 c# interface

我正在尝试实现一个需要单个属性的接口,但我没有明确关心它是什么类型.例如:

public interface IName
{
    dynamic Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

然后,如果我有一个类,我想用一种字符串实现IName接口:

public class Person : IName
{
     public string Name {get; set;}
} 
Run Code Online (Sandbox Code Playgroud)

然而,这会引发错误.我知道我可以让界面INAME采取通用arguement IName<T>但促使我创建了一堆是采取重载函数IName<string>,IName<NameObj>,IName<etc>而不是单一的功能中铸造.

我怎样才能要求某个类包含属性?

Che*_*hen 11

interface IName<T>
{
    T Name { get; set; }
}

class Person : IName<string>
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)


mgr*_*ber 5

我现在无法测试,但也许你可以明确地实现接口.

public class Person : IName
{
    public string Name {get; set;}

    dynamic IName.Name {
        get { return this.Name; }
        set { this.Name = value as string; }
    }
} 
Run Code Online (Sandbox Code Playgroud)