Labview:投射到更具体的对象时发生错误1057

时间:2019-01-25 19:23:18

标签: oop casting labview

我将C#中的两个类编译为一个库,以导入到LabView项目中。

    public class Upper
    {
        public sbyte Signed8 { get; set; }
public char Unicode16 { get; set; } public short Signed16 { get; set; } public int Signed32 { get; set; } public long Signed64 { get; set; }

    public int UpperDoSomething() { return Signed32; }
}

and

public class Lower : Upper { public byte Unsigned8 { get; set; } public ushort Unsigned16 { get; set; } public uint Unsigned32 { get; set; } public ulong Unsigned64 { get; set; }

public uint LowerDoSomething() { return Unsigned32; } }

我不断收到错误1057: “类型不匹配:无法将对象强制转换为特定类型”

要避免任何人下载文件,请分析组件“到更特定的类”:

  • 上部连接到参考类别

  • 一个统一的下层阶级与目标阶级联系起来

  • 属性节点连接到特定的类引用

  • (旁注)对于下载vi的任何人,指标都有一个属性,该属性没有松动的导线

1 个答案:

答案 0 :(得分:0)

您正在调用Upper的构造函数,然后尝试将其转换为Lower的实例,而不是其实例。

当您通过代码将子类实例当作父类传递给子类实例,但是又进行了需要子类类型的操作时,tsc块(通常是在OOP中强制转换为子代)很有用。它必须已经被创建为子类的实例。