Type.GetProperty(string)
如果类型是接口,为什么不从基接口获取属性?例如,以下代码打印:
System.String X
null
System.String X
System.String X
这似乎不一致:
void Main()
{
Console.WriteLine(typeof(I1).GetProperty("X"));
Console.WriteLine(typeof(I2).GetProperty("X"));
Console.WriteLine(typeof(C1).GetProperty("X"));
Console.WriteLine(typeof(C2).GetProperty("X"));;
}
public interface I1 { string X { get; } }
public interface I2 : I1 { }
public class C1 { public string X { get { return "x"; } } }
public class C2 : C1 { }
编辑:支持科尔答案的运行时的另一个方面如下:
public class C : I2 {
// not allowed: the error is
// 'I2.X' in explicit interface declaration is not a member of interface
string I2.X { get; set; }
// allowed
string I1.X { get; set; }
}