Я пытаюсь изменить тип свойства в классе реализации интерфейса, используя явную реализацию интерфейса.
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;
}
Но когда мне нужно передать интерфейсный объект в функцию, я не могу получить доступ к объектам SomeClass1 или SomeClass2.
Например:
public void MethodA(ISample sample)
{
string str = sample.Value.s1;//doesnt work.How can I access s1 using ISample??
}
Я не знаю, понятно ли это, но я не могу найти более простой способ объяснить это. Есть ли способ получить доступ к свойствам SomeClass1 с помощью интерфейса ISample?
Спасибо