【发布时间】:2012-03-29 06:49:48
【问题描述】:
我正在尝试使用显式接口实现来更改接口实现类中的属性类型。
interface ISample
{
object Value { get; set; }
}
class SampleA : ISample
{
SomeClass1 Value { get; set; }
object ISample.Value
{
get { return this.Value; }
set { this.Value = (SomeClass1)value; }
}
}
class SampleB : ISample
{
SomeClass2 Value { get; set; }
object ISample.Value
{
get { return this.Value; }
set { this.Value = (SomeClass2)value; }
}
}
class SomeClass1
{
string s1;
string s2;
}
但是当我需要在函数中传入接口obj时,我无法访问SomeClass1或SomeClass2的对象。
例如:
public void MethodA(ISample sample)
{
string str = sample.Value.s1;//doesnt work.How can I access s1 using ISample??
}
我不知道这是否可以理解,但我似乎无法找到更简单的方法来解释这一点。有没有办法使用接口 ISample 访问 SomeClass1 的属性?
谢谢
【问题讨论】: