LabVIEWForum.de
.NET Enum und Case Structure - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: .NET Enum und Case Structure (/Thread-NET-Enum-und-Case-Structure)



.NET Enum und Case Structure - richnsim - 12.12.2014 12:39

Hallo,

Ich experimentiere gerade etwas mit Labview (14.0) und .NET (4.0). Dabei ist mir aufgefallen, dass wenn meine .NET Funktion als Parameter oder Rückgabewert ein Enum hat, wird dieses automatisch vom LabView erkannt. Wenn ich aber mit dem .NET Enum auf eine Case Structure gehe, wird dort nicht der Enum, sondern der entsprechende Integer angezeigt:

[attachment=51605]

Ist das von NI mit Absicht so gewollt, oder kann ich das irgendwo umstellen, dass es mir den Enum statt den Integer-Wert anzeigt?

Hier meine C# Klasse:
Code:
namespace EnumTest
{
    public enum LinkType
    {
        Rs232,
        Ethernet
    }

    public enum SpeedType
    {
        Slow,
        Fast,
        Unknown
    }

    public class SpeedTester
    {
        public SpeedType GetSpeed(LinkType linkType)
        {
            if (linkType == LinkType.Ethernet)
                return SpeedType.Fast;

            else if (linkType == LinkType.Rs232)
                return SpeedType.Slow;

            else
                return SpeedType.Unknown;
        }
    }
}

Grüsse, Simon


RE: .NET Enum und Case Structure - jg - 12.12.2014 12:45

Schau mal genau hin, LabVIEW erzeugt automatisch ein LabVIEW-Ring-Control mit den entsprechenden Werten, kein LabVIEW-Enum!!!

EDIT: Das ist auch richtig und durchaus so gewollt, den es gibt hier Unterschiede:
LabVIEW Enum: Numerische Werte bei 0 beginnend, und immer um 1 nach oben zählend. Es sind keine Lücken erlaubt
.NET: Es kann beliebigen numerischen Werte ein String zugewiesen werden, es dürfen Lücken sein, etc. pp., das entspricht in LabVIEW dann einem Ring.

Gruß, Jens