C # Mehrfache SWITCH-Anweisungen vermeiden .net

8

Bitte entschuldige Ausbrüche von Dummheit, während ich die Feinheiten von C # / .NET lerne.

Angenommen, ich habe drei Klassen mit mehreren statischen Eigenschaften (mehr als drei, aber aus Gründen der Argumente ..)

%Vor%

Und von einer anderen Klasse muss ich eine oder mehrere statische Eigenschaften in jeder Klasse mehrmals aktualisieren ... Wie kann ich mehrere SWITCH-Statements wie diese nicht schreiben ...

%Vor%

Und dann noch eine, wenn ich B varY aktualisieren möchte:

%Vor%     
CraigJSte 24.03.2011, 23:21
quelle

5 Antworten

2

Vielleicht verstehe ich das Problem nicht, aber wenn alle Ihre Klassen die gleichen Eigenschaften haben, dann können Sie das Objekt (FOO, BAR oder YOO) einfach in UpdateVarx oder UpdateVary-Methoden übergeben und einfach eine Schnittstelle implementieren? Etwas in dieser Richtung:

%Vor%     
Pete 25.03.2011, 00:03
quelle
4

Da Sie lernen, .net / c #, ich denke, ich sollte Sie warnen, mit statischen Eigenschaften ist wahrscheinlich nicht der Weg in objektorientierte Programmierung gehen.

Statisch ist globaler Zustand und ist gefährlich. Wenn Sie Multi-Thread-Code verwenden, müssen Sie sehr vorsichtig sein. Wenn Sie nur eine Instanz benötigen, instantiieren Sie diese, aber erstellen Sie keine statischen Eigenschaften für eine Klasse, es sei denn, Sie haben einen guten Grund, sie hinzuzufügen (und ich kann mir momentan nichts vorstellen).

In der Tat, in gut entworfenem, objektorientiertem Code sollten Sie wahrscheinlich nicht viele If, ​​Schalter, Getter oder Setter haben.

Nehmen wir an, Sie benötigen unterschiedliche Verhaltensweisen in Ihren Klassen, Sie können dies auf diese Weise tun.

%Vor%

Oder, wie in Ihrem Beispiel, haben alle Ihre statischen Klassen die gleichen Eigenschaften:

%Vor%     
Martin 24.03.2011 23:48
quelle
1

Wenn Sie die konkreten Klassen nicht benötigen, können Sie die Logik wie folgt abstrahieren:

%Vor%     
CodeNaked 24.03.2011 23:40
quelle
0

Wenn Sie ein Fan von Javascript sind, lösen Sie mehrere Schalterfälle wie

Sie können die Switch-Handler immer als Aktionen einpacken und sie in ein Dictionary werfen.

Zum Beispiel: (Quelle erhalten von hier )

%Vor%     
WorldIsRound 24.03.2011 23:29
quelle
0

Der folgende Code verwendet alle Arten von Hacks, die im Produktionscode nicht wirklich empfohlen werden, es sei denn, Sie haben einen sehr guten Grund.

%Vor%     
Sanjeevakumar Hiremath 24.03.2011 23:48
quelle

Tags und Links