Labview: ошибка 1057 при приведении к более конкретному объекту - PullRequest
0 голосов
/ 25 января 2019

У меня есть два класса в C #, скомпилированные в библиотеку для импорта в проект LabView.

    public class Upper
    {
        public sbyte Signed8 { get; set; }<br>
        public char Unicode16 { get; set; }
        public short Signed16 { get; set; }
        public int Signed32 { get; set; }
        public long Signed64 { get; set; }</p>

<pre><code>    public int UpperDoSomething() { return Signed32; }
}
</code>

</p> <p>and</p> <p> public class Lower : Upper { public byte Unsigned8 { get; set; } public ushort Unsigned16 { get; set; } public uint Unsigned32 { get; set; } public ulong Unsigned64 { get; set; }</p> public uint LowerDoSomething() { return Unsigned32; } }

Я получаю ошибку 1057: «Несоответствие типов: объект не может быть приведен к определенному типу»

Чтобы избавить кого-либо от загрузки файла, проанализировав компонент "к более конкретному классу":

  • Верхний соединен с эталонным классом

  • Унифицированный низший класс связан с целевым классом

  • Узел свойства связан с определенной ссылкой на класс

  • (примечание) для всех, кто загружает vi, есть свойство, подключенное к индикатору, чтобы не было свободных проводов

1 Ответ

0 голосов
/ 05 февраля 2019

Вы вызываете конструктор Upper, затем пытаетесь поместить его в Lower, который не является экземпляром.

Блок tsc (и, как правило, приведение к потомку в ООП) полезен, когда вы пропустили экземпляры подкласса через код, рассматривая его как родительский класс, но затем выполнили операцию, которая требует тип подкласса. Он должен быть создан как экземпляр подкласса.

...