假设我有一个实现字符串类型属性的类型:
public class Record
{
public string Value { get; set; }
}
然后我有一个定义同名属性的接口:
public interface IIntValued
{
public int Value { get; set; }
}
我可以使用如下显式接口:
public class Record : IIntValued
{
public string Value { get; set; }
int IIntValued.Value
{
get{ return 0; } set{}
}
}
但是,如果我希望能够在我的显式接口中引用字符串“Value”,我可以这样做吗?如果是这样,怎么做?我想它是这样的:
public class Record : IIntValued
{
public string Value { get; set; }
public int IIntValued.Value
{
get
{
string value = /*Magic here*/.Value;
return int.parse(value);
}
set{}
}
}
如您所见,我想要“int valued”“Value”属性中的表达式的“string valued”“Value”属性。如果它是另一个显式实现的接口成员,我可以类型转换为该接口然后使用,但它如何用于隐式类型成员?
注意:这个例子有点做作,但希望能演示语言问题。