Ich versuche den folgenden Code. Auf die Zeile mit dem Fehler wird hingewiesen.
int[] myfunction()
{
{
//regular code
}
catch (Exception ex)
{
return {0,0,0}; //gives error
}
}
Wie kann ich ein Array-Literal wie String-Literale zurückgeben?
const
Feldern zugeordnet werden können. Dies ist bei der Array-Initialisierungssyntax nicht der Fall.Antworten:
Geben Sie ein Array
int
wie folgt zurück:return new int [] { 0, 0, 0 };
Sie können das Array auch implizit eingeben. Der Compiler wird daraus schließen,
int[]
dass es nurint
Werte enthalten sollte:return new [] { 0, 0, 0 };
quelle
new int [] {0,0,0}
funktioniert auch. Es wäre meiner Meinung nach klarer.Blorgbeard ist korrekt, aber Sie könnten auch darüber nachdenken, die neue Klasse für .NET 4.0 Tuple zu verwenden. Ich fand es einfacher, damit zu arbeiten, wenn Sie eine festgelegte Anzahl von Artikeln zurückgeben müssen. Wie wenn Sie immer 3 Elemente in Ihrem Array zurückgeben müssen, macht ein 3-int-Tupel deutlich, was es ist.
return new Tuple<int,int,int>(0,0,0);
oder einfach
return Tuple.Create(0,0,0);
quelle
return new List<int>(new int[]{0,0,0});
List<int>(Enumerable.Repeat(0, 3))
besser?Wenn das Array eine feste Größe hat und Sie eine neue mit Nullen gefüllte zurückgeben möchten
return new int[3];
quelle