我想返回一个对象但是作为基础继承的接口。 IMasterData和IGetValues由其他项目共享,所以我不太确定我可以做出的更改量。代码是这样的:
public class WithData : IBasicData
{
public string prop1 { get; set; }
public string prop2 { get; set; }
public string prop3 { get; set; }
public string prop4 { get; set; }
}
public interface IBasicData: IMasterData
{
string prop3 { get; set; }
string prop4 { get; set; }
}
public interface IMasterData
{
string prop1 { get; set; }
string prop2 { get; set; }
}
public interface IGetValues
{
IMasterData FillValues(someType element)
}
public class MyClass : IGetValues
public IMasterData FillValues(someType element)
{
var u = new WithData
{
prop1 = element.value1,
prop2 = element.value2,
prop3 = element.value3,
prop4 = element.value4
};
return u;
}
我收到一个错误,你说它无法将对象WithData转换为返回类型IMasterData。由于继承链,我认为这是可能的。如何将对象作为IMasterData类型返回?
答案 0 :(得分:1)
这主要是你的代码,运行正常。因此,除非您指出问题所在,否则我们无法帮到您。
public interface IMasterData
{
string Prop1 { get; set; }
string Prop2 { get; set; }
}
public interface IBasicData : IMasterData
{
string Prop3 { get; set; }
string Prop4 { get; set; }
}
public class WithData : IBasicData
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public string Prop3 { get; set; }
public string Prop4 { get; set; }
}
public class SomeType
{
public string value1, value2, value3, value4;
}
public interface IGetValues
{
IMasterData FillValues(SomeType element);
}
public class MyClass : IGetValues
{
public IMasterData FillValues(SomeType element)
{
var u=new WithData()
{
Prop1=element.value1,
Prop2=element.value2,
Prop3=element.value3,
Prop4=element.value4
};
return u;
}
}