2016-10-07 2 views
2

Ich habe einige Beispiele für C# Standard-String-Parameter googled und gefunden, dass das so ist.C# set default argument, string array (string [])

Zeichenfolge Ausnahmen = „John“

Ich brauche den Standardwert für eine Zeichenfolge, um [], aber y nicht gefunden haben, wie kann ich einen String-Array als Standardwert für eine C# Methode festgelegt.

static int startapp(string Source, string Destination, string[] Exceptions = { "John", "Paul", "Mary" }) 
      { 
       //do something 
      } 
+1

Ich denke, es ist nicht Array-Literale in Standardparameter zu verwenden ist erlaubt. Normalerweise setze ich sie auf null, und wenn der Wert null ist, setze den Standardwert im Methodentext. – jorgonor

+3

Gefunden [this.] (Http://stackoverflow.com/questions/12607146/method-parameter-array-default-value) Es scheint zu was Sie versuchen zu tun. –

+0

Diese Antwort sieht wie ein besserer Weg aus, um es zu tun. Danke für das Teilen! – jorgonor

Antwort

0

Von MSDN

Ein Standardwert eine der folgenden Arten von Ausdrücken sein müssen:
- ein konstanter Ausdruck;
- ein Ausdruck der Form new ValType(), wobei ValType ein Werttyp ist, z. B. eine Enumeration oder eine Struktur;
- ein Ausdruck des Formularstandards (ValType), wobei ValType ein Werttyp ist.

In Ihrem Fall ist string[] ein Referenztyp.
Für Standardwert Referenztypen ist immer null

Visual Studio erwies sich als eine Erklärung, wenn Sie versuchen, neue Array als Standardtyp zu initialisieren:

Standard-Parameterwert eine Kompilierung-Konstante

sein muss
1

Entschuldigung, dies musste ein Kommentar sein, aber ich habe nicht genug Reputation, um einen Kommentar hinzuzufügen. Was Sie wahrscheinlich suchen, ist diese Antwort

optional array Parameter in C# [duplicate]

es sagt (von den docs)

A default value must be one of the following types of expressions: 

    a constant expression; 

    an expression of the form new ValType(), where ValType is a value type, such as an enum or a struct; 

    an expression of the form default(ValType), where ValType is a value type.