有2个类,继承同一个接口,这2个类写在一组公共库中,多个程序会使用到
2个类之间的显示转换怎么写?
CompleteData -> BasicData 时,BasicData.Buy =  CompleteData.Buy[0];
BasicData -> CompleteData 时 CompleteData.Buy = new float[1]{ BasicData.Buy };public interface IData
{
    string Key { get; }
    string Name { get; }
    DateTime Time { get; }
}publi class BasicData :IData
{
    public string Key { get; private set; }
    public string Name { get ;private set; }
    public DataTime Time { get; private set; }    public float Buy { get; set; }
}
public class CompleteData : IData
{
    public string Key { get; private set; }
    public string Name { get ;private set; }
    public DataTime Time { get; private set; }    public float[] Buy { get; set; }
}

解决方案 »

  1.   

    就是下面这样不报错private void Save(IData data)
    {
        CompleteData cd = (CompleteData)data;
        BasicData bd = (BasicData)data;
    }
      

  2.   

    CompleteData -> BasicData
    BasicData -> CompleteData 
    这是不对相互转换的,因为这两个类之间没有相互继承关系,但这两个类都可以转换为IData接口;
      

  3.   

    虽不报错,但必定有一个为空,要么cd要么bd;因为从你的继承关系看,一个IData的派生类,不可能既为CompleteData又为basicData
      

  4.   

    那能实现像 int 和 long 那样的互相转换效果吗?