2012-12-20 6 views
6

In VB.NET, können Sie instanziieren und sofort ein Array wie folgt verwenden:Hat C# ein VB.NET-Äquivalent für die Abkürzung von Arrays wie {"string1", "string2"}?

Dim b as Boolean = {"string1", "string2"}.Contains("string1")

In C#, aber es scheint, Sie haben dies zu tun:

bool b = new string[] { "string1", "string2" }.Contains("string1");

Does C# hat eine äquivalente Kurzschriftsyntax, die Typinferenz verwendet, um den Typ des Arrays zu bestimmen, ohne dass es explizit deklariert werden muss?

Antwort

19

Implicitly typed arrays müssen nicht ihre Art sind, vorgesehen, kann inferred sein:

bool b = new [] { "string1", "string2" }.Contains("string1"); 
+0

Und Sie können mehr darüber hier lesen: http://msdn.microsoft.com/en-us/library/bb384090.aspx – Pete

+0

Ah, das ist schade. Ich hatte gehofft, nicht einmal noch 'new []' angeben zu müssen, aber ich denke es ist was es ist. Vielen Dank. – oscilatingcretin

3

Es genannt Implicitly Typed Arrays

Sie können eine implizit typisierte Array erstellen, in dem die Art der Die Array-Instanz wird von den Elementen abgeleitet, die im Array Initialisierer angegeben sind. Die Regeln für jede implizit typisierte Variable gelten auch für implizit typisierte Arrays .

static void Main() 
    { 
     var a = new[] { 1, 10, 100, 1000 }; // int[] 
     var b = new[] { "hello", null, "world" }; // string[] 
    } 

Sie können es auch für gezackten Array.

Verwandte Themen