enums in C # - Zuweisung

7

Wie macht man das in c #?

Nehmen wir an, dass myclass folgendes hat:

%Vor%


1) Wie fügt man mit Hilfe des Konstruktors dem Enum innerhalb der Myclass Daten hinzu? Wie in:

%Vor%

, damit die enum innerhalb der Klasse die Eigenschaften "Montag, Freitag" erhält.


2) Kann man auch eine Eigenschaft für einen Enumer in der Klasse erstellen, nachdem sie initialisiert wurde? Zum Beispiel:

%Vor%

BEARBEITEN:

Was ich machen möchte, ist Folgendes:

Haben Sie ein enum in der Hauptklasse, wie enum Tage {Montag, Dienstag, Mittwoch, Donnerstag, Freitag};

Ich hätte auch etwas in der Myclass (enum?), so dass ich einige Werte von Days enum bis myclass internal (enum?) mit nur einigen, aber nicht allen Werten im Days enum zuweisen kann.

Damit kann ich eine Myclass bekommen, die eine (enum?) mit "Montag, Dienstag" enthält, während einige Myclass222 (enum?) "Friday" usw. enthält.

Ich weiß nicht, ob die Enum die richtige Methode ist, dies innerhalb der Myclass-Klassen zu tun?

    
Milan 18.03.2010, 19:08
quelle

4 Antworten

11

Ihre Frage ist etwas vage, aber wenn Sie tatsächlich fragen, wie Sie ein Enum konstruieren, wo die Werte kombiniert werden können, ist die Antwort, es mit dem Flags Attribut:

%Vor%

Wenn Sie jetzt ein Mitglied vom Typ Days haben, können Sie ihm einen kombinierten Wert zuweisen:

%Vor%

Aktualisieren
Auf Anfrage; So prüfen Sie, ob ein bestimmter Wert eingestellt ist:

%Vor%

Als Antwort auf die Frage, wie man ein Mitglied der Enumeration in einer Klasse erstellt, wenn die Enumeration in einer anderen Klasse definiert ist, würde das so aussehen:

%Vor%     
Fredrik Mörk 18.03.2010, 19:14
quelle
8

1) Sie können nicht. Die Enumeration muss zum Zeitpunkt der Kompilierung definiert sein.

Es sieht so aus, als würden Sie stattdessen nach einer AttributeCollection suchen. (Sehen Sie sich die Antwort von Fredrik Mörk an, über die ich sprechen wollte;))

2) my.Days = Days.Tuesday

    
citronas 18.03.2010 19:10
quelle
2

Kann nicht von der Frage erzählen, aber vielleicht beabsichtigen Sie so etwas:

  1. Definieren Sie eine Aufzählung mit den Tagen

    öffentliche enum Tage {     Sonntag,     Montag,     .     .     . }

  2. Erstellen Sie ein Listenattribut von Days in Ihrer Klasse

  3. Fügen Sie die erforderlichen Tage zu Ihrer Liste hinzu, wenn Sie sie benötigen
Rachel 18.03.2010 19:17
quelle
0
  

Das scheint das zu sein, was ich tun möchte.   Die Frage ist, ob enum Days definiert ist   in meiner "Hauptklasse", wie kann ich eine haben   Mitglied von Days in einer anderen "Myclass"   Klasse ", so dass ich verwenden kann   myclass.someDays = Tage.Montag?

Nun vorausgesetzt, Ihre Hauptklasse ist mainClass und Sie haben apt Zugriffsperms zur Verfügung gestellt, dann abhängig von der Definition von enum, dh 1. Wenn es dann statisch ist    myclass.someDays = mainClass.Days.Monday; 2. Andernfalls müssen Sie über ein Objekt von mainClass darauf zugreifen    mainClass mc = neue mainClass ();    myclass.someDays = mc.Days.Monday;

    
user296873 18.03.2010 19:48
quelle

Tags und Links