myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » enums, die nur aus Zahlen bestehen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

enums, die nur aus Zahlen bestehen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
CrocodileDundee
myCSharp.de-Mitglied

Dabei seit: 23.03.2018
Beiträge: 43


CrocodileDundee ist offline

enums, die nur aus Zahlen bestehen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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

C#-Code:
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
15.02.2019 13:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.236
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
15.02.2019 15:02 Beiträge des Benutzers | zu Buddylist hinzufügen
ThomasE. ThomasE. ist männlich
myCSharp.de-Mitglied

avatar-178.gif


Dabei seit: 26.11.2013
Beiträge: 446
Entwicklungsumgebung: Visual Studio 2015Pro/2017Ent


ThomasE. ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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

C#-Code:
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...

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von ThomasE. am 18.02.2019 08:15.

16.02.2019 01:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.236
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Jo, das ist auch eine schlanke, simple Lösung Daumen hoch
Edit: eigentlich haben die nachfolgenden Posts mehr Recht.
16.02.2019 15:01 Beiträge des Benutzers | zu Buddylist hinzufügen
chilic
myCSharp.de-Poweruser/ Experte

Dabei seit: 12.02.2010
Beiträge: 2.017


chilic ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Reicht dazu nicht einfach ein Array?
17.02.2019 09:30 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.402
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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).
17.02.2019 10:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 9 Monate.
Der letzte Beitrag ist älter als 9 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 06.12.2019 22:07