C # Initialisierer bedingte Zuweisung

8

In einem c # -Initialisierer möchte ich keine Eigenschaft festlegen, wenn eine Bedingung falsch ist.

In etwa so:

%Vor%

Es kann getan werden? Wie?

    
Pomber 12.07.2010, 13:54
quelle

6 Antworten

9

Sie können das nicht tun; C # -Initialisierer sind eine Liste von Name = Wert-Paaren. Siehe hier für Details: Ссылка

Sie müssen den Block if in die folgende Zeile verschieben.

    
Tim Robinson 12.07.2010, 13:58
quelle
22

Dies ist in einem Initialisierer nicht möglich; Sie müssen eine separate if -Anweisung erstellen.

Alternativ können Sie möglicherweise

schreiben %Vor%

(Abhängig davon, wie Ihre ServerConnection -Klasse funktioniert)

    
SLaks 12.07.2010 13:56
quelle
5

Ich vermute, das würde funktionieren, aber die Verwendung von Logik auf diese Weise vereitelt den Zweck der Verwendung des Initialisierers.

%Vor%     
Jay 12.07.2010 13:58
quelle
3

Hinweis: Ich empfehle diesen Ansatz nicht, aber wenn muss in einem Initialisierer (dh Sie verwenden LINQ oder einen anderen Ort, wo es eine einzelne Anweisung sein muss), Sie getan werden kann dies verwenden:

%Vor%     
Randolpho 12.07.2010 13:57
quelle
3

Wie bereits erwähnt, kann dies nicht innerhalb eines Initialisierers durchgeführt werden. Ist es akzeptabel, der Eigenschaft nur den Wert Null zuzuweisen, anstatt sie überhaupt zu setzen? Wenn ja, können Sie den Ansatz verwenden, auf den andere hingewiesen haben. Hier ist eine Alternative, die das erreicht, was Sie wollen und trotzdem die Initialisierersyntax verwendet:

%Vor%

Meiner Meinung nach sollte es eigentlich nicht viel ausmachen. Wenn Sie nicht mit anonymen Typen arbeiten, ist die Initialisierersyntax nur ein nettes Feature, das Ihren Code in manchen Fällen aufgeräumter aussehen lässt. Ich würde sagen, gehen Sie nicht aus dem Weg, um es zu verwenden, um alle Ihre Eigenschaften zu initialisieren, wenn es die Lesbarkeit beeinträchtigt. Es ist nichts falsch daran, stattdessen den folgenden Code zu verwenden:

%Vor%     
Dr. Wily's Apprentice 12.07.2010 14:16
quelle
0

Wie wäre es damit:

%Vor%     
Luft 18.08.2017 07:57
quelle

Tags und Links