Laden...

enums, die nur aus Zahlen bestehen

Erstellt von CrocodileDundee vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.624 Views
C
CrocodileDundee Themenstarter:in
51 Beiträge seit 2018
vor 5 Jahren
enums, die nur aus Zahlen bestehen

Hallo zusammen,
ich möchte eine ComboBox mit einer Auswahl für die Baudrate einer Schnittstelle befüllen.
Diese Auswahl besteht also nur aus Zahlenwerten (9600, 19200, 38400).

Ich würde gerne ein enum erstellen, aber der Compiler erwartet Bezeichner, d.h. also so etwas wie


private enum Baudrate 
{
      9600,
      19200,
      38400
}

geht nicht.
Wie kann ich sowas am besten lösen, wenn ich als Auswahl nur Zahlenwerte habe?

Danke und Gruß
Frank

16.806 Beiträge seit 2008
vor 5 Jahren

Edit: jetzt verstanden.

Nein - ein Enum kann keine Zahl allein sein.
Musst halt mit DisplayMember bzw. DescriptionAttribute arbeiten oder Dir was anderes einfallen lassen, das sich nicht an der Enum selbst richtet...

Du solltest auf alle Fälle keine UI-Abhängigkeit wie Text in einem Enum pflegen.
Siehe auch [Artikel] Drei-Schichten-Architektur

T
461 Beiträge seit 2013
vor 5 Jahren

Das hier wäre eine (weitere) Möglichkeit:


private enum Baudrate : int 
{
      B_9600 = 9600,
      B_19200 = 19200,
      B_38400 = 38400
}

private void Test()
{
    int rate = (int)Baudrate.B_9600;
    Baudrate baudRateEnum = (Baudrate)9600;
}

Ist halt immer die Frage, wie notwendig das ist.
Wenn du das nur für eine konstante Auswahl benötigts im UI, könnte man diese Zahlen als konstante Werte direkt in einer ComboBox in der View oder im ViewModel in einer Liste unterbringen.
Somit würde sich der Umstand erübrigen, da es unnötig wäre in dem Fall.

SG

[Edit2] mal bestimmte Texte hervorgehoben, wie sie von Anfang an drinnen standen, im Bezug zu den nachfolgenden Beiträgen...

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄

16.806 Beiträge seit 2008
vor 5 Jahren

Jo, das ist auch eine schlanke, simple Lösung 👍
Edit: eigentlich haben die nachfolgenden Posts mehr Recht.

C
2.121 Beiträge seit 2010
vor 5 Jahren

Reicht dazu nicht einfach ein Array?

4.931 Beiträge seit 2008
vor 5 Jahren

Sehe ich auch so. Ein Enum macht nur Sinn, wenn man auch explizit im Source-Code auf dessen Member zugreift (und nicht an deren internen Werten interessiert ist).