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# » Gibt es ein Enum mit Double Werten?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Gibt es ein Enum mit Double Werten?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
dila71 dila71 ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.10.2005
Beiträge: 99


dila71 ist offline

Gibt es ein Enum mit Double Werten?

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

Hallo,
ich habe im Code (Verursacher nicht greifbar ;-) ) folgende enum.

C#-Code:
public enum SValue
    {
        /// <summary>
        /// 0.2
        /// </summary>
        eS02,

        /// <summary>
        /// 0.25
        /// </summary>
        eS025,

        /// <summary>
        /// 0.38
        /// </summary>
        eS038
    }

Natürlich gibt es auch ein Property ValueProperty (<= Beispielnamen), welches von diesem Typ ist.

Wenn nun

C#-Code:
ValueProperty = SValue.eS02;

dann liefert:

C#-Code:
ValueProperty.Get() => 0.2

Ich dachte bisher Double Enums gäbe es nicht.
Google sagt auch nur, geht nicht.
Nach was kann/muss ich googeln, um mich darüber zu informieren.


Meine eigentliche Aufgabe inportiere einen Striing in dieses Property,
natürlich nicht den String eS038, wäre ja zu einfach... (SValue)Enum.Parse(typeof(SValue), "eS038");
nee "0,38" soll es sein.


Danke im Voraus für die Hilfe

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von dila71 am 15.08.2019 19:10.

15.08.2019 19:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.321
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

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

Mir wird nicht ganz klar, was du nun vor hast.
Wenn du nur den Double Wert zu dem entsprechendem Enum Wert brauchst, kannst du dies auch einfach mit einer Helper Methode lösen.

C#-Code:
public double GetValue(SValue sVal)
{
    switch(sVal)
    {
         case SValue.eS02:
             return 0.2;
         // Hier weitere Fälle Eintragen
    }
}

T-Virus
15.08.2019 19:28 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.057
Herkunft: Stuttgart/Stockholm


Abt ist offline

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

Zitat von dila71:
Meine eigentliche Aufgabe inportiere einen Striing in dieses Property,
natürlich nicht den String eS038, wäre ja zu einfach... (SValue)Enum.Parse(typeof(SValue), "eS038");
nee "0,38" soll es sein.

Ist das eine Schulaufgabe, bei der Du etwas genau so implementieren sollst? Oder was ist der eigentliche Zweck Deines Vorhabens?
15.08.2019 20:49 Beiträge des Benutzers | zu Buddylist hinzufügen
dila71 dila71 ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.10.2005
Beiträge: 99

Themenstarter Thema begonnen von dila71

dila71 ist offline

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

Danke für Die Antworten.

Hier nochmal zur Erklärung:
Ich habe existierenden Code.
In einer Klasse (Welche eine Excelzeile abbildet) gibt es eben das erwähnte ValueProperty vom Typ SValue.
Der Urheber (nicht verfügbar) scheint damit sicherstellen zu wollen, dass da eben nur die 3 möglichen Werte drin sein können.

Beim Excelexport (bereits fertig und ebenfalls nicht von mir) wird ValueProperty.Get() in ins Excel geschrieben und das ist eben wie bereits gesagt 0.2 wenn ValueProperty mit SValue.eS02 belegt ist.

Meine Aufgabe ist jetzt ein ExcelImport wo dann eben aus den Werten 0.2, 0.25 und 0.38 eben wieder die EnumValues entstehen müssen.

Aus Euren Antworten schließe ich, dass ich wohl irgendwo eine ExtensionKlasse übersehen habe und da das Get() implementiert ist.
Meine ursprüngliche Annahme war, dass man doch irgendwie ein Enum mit Double Werten machen kann und ich es nur nicht kenne bzw. mich zu blöd anstelle.

Nochmals Danke ´
15.08.2019 21:19 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.321
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

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

Im einfachsten Fall musst du nur in die Get() Mthode springen.
Ggf. gibt es dort auch eine passende Set() Methode um den Import einfach umzusetzen.
Aber hier must du dich weiter in den Code einarbeiten, wir können dir hier nicht ohne Informationen von dir weiterhelfen.

T-Virus
15.08.2019 22:13 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
gfoidl gfoidl ist männlich
myCSharp.de-Team

avatar-2894.jpg


Dabei seit: 07.06.2009
Beiträge: 6.594
Entwicklungsumgebung: VS 2019
Herkunft: Waidring


gfoidl ist offline

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

Hallo dila71,

Zitat:
Ich dachte bisher Double Enums gäbe es nicht.
Google sagt auch nur, geht nicht.
Nach was kann/muss ich googeln, um mich darüber zu informieren.

Naja, die offizielle Doku?

Zitat von enum (C# Reference):
Every enumeration type has an underlying type, which can be any  integral numeric type.

double ist kein "integral numeric type" (siehe dazu auch  [FAQ] Double und Float: Fehler beim Vergleich und Rundungsfehler).

mfG Gü
16.08.2019 10:59 Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


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


Abt ist offline

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

Zitat von dila71:
Meine ursprüngliche Annahme war, dass man doch irgendwie ein Enum mit Double Werten machen kann und ich es nur nicht kenne bzw. mich zu blöd anstelle.

Wie gfoidl bereits referenziert hat: double ist bei Enum nicht.
Ich hab aber schon gesehen, dass für so ein Vorgaben die Mill-Darstellung verwendet wurde; ein übliches Verfahren bei Wert-Darstellungen.
 Mill (currency)
Damit lassen sich auch Rundungsfehler vermeiden.
16.08.2019 18:52 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Monate.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 15.10.2019 20:29