我正在尝试实现一个需要单个属性的接口,但我没有明确关心它是什么类型.例如:
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)
我现在无法测试,但也许你可以明确地实现接口.
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)