Ist es möglich, etwas Ähnliches wie das Folgende zu schreiben?
public const string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };
Ist es möglich, etwas Ähnliches wie das Folgende zu schreiben?
public const string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };
Einfaches Entfernen const
aus dem OP-Beispiel funktioniert auch, aber das (oder Ihre Antwort) erlaubt es, beides zu ändern: Titles
Instanz und einem beliebigen Wert. Was ist also der Sinn dieser Antwort?
@Sinatr, ich habe diese Frage vor 3 Jahren beantwortet, als ich anfing, in C# zu arbeiten. Ich habe es verlassen, jetzt bin ich in der Java-Welt. Vielleicht habe ich vergessen, hinzuzufügen readonly
Nach reiflicher Überlegung ist Ihre Antwort eine direkte wie man den OP-Code zum Laufen bringt , ohne jegliche const
/ readonly
Überlegungen, einfach damit es funktioniert (z.B. wenn const
war ein Syntaxfehler). Für einige Leute scheint es ein wertvoll Antwort (vielleicht haben sie auch versucht, die const
versehentlich?).
Dies ist eine Möglichkeit, das zu tun, was Sie wollen:
using System;
using System.Collections.ObjectModel;
using System.Collections.Generic;
public ReadOnlyCollection<string> Titles { get { return new List<string> { "German", "Spanish", "Corrects", "Wrongs" }.AsReadOnly();}}
Es ist sehr ähnlich wie bei einem schreibgeschützten Array.
Schnelle Abhilfe für den Fall, dass sie für jemanden hilfreich ist. Ich brauchte eine string[]
ein Argument für ein Attribut sein (Übergabe von Inline-Daten für einen Testfall in einer Theorie). readonly
wird hier nicht helfen. Aber ich habe es getan:
const string foo = "a|b|c";
[InlineData(foo)]
public void Test(string fooString)
{
var foo = fooString.Split("|"); // foo == {"a","b","c"}
...
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Static verwendet werden könnte, public static string[] Titles = new string[] {"Deutsch", "Spanisch"};