2012-12-20 10 views
6

W VB.NET, można utworzyć wystąpienia i natychmiast wykorzystać tablicę takiego:Czy C# ma odpowiednik VB.NET dla stenograficznej deklaracji tablicy, np. {"String1", "string2"}?

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

w C#, jednak wydaje się, co musisz zrobić, to:

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

robi C# mają równoważną skróconą składnię, która wykorzystuje typowanie do określenia typu tablicy bez konieczności jawnego deklarowania?

Odpowiedz

19

Implicitly typed arrays nie muszą zawierać ich typu, o ile może to być inferred:

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

Więcej informacji na ten temat można znaleźć tutaj: http://msdn.microsoft.com/en-us/library/bb384090.aspx – Pete

+0

Ah, szkoda. Miałem nadzieję, że nawet nie będę musiał określać nawet "nowego []", ale myślę, że tak właśnie jest. Dzięki. – oscilatingcretin

3

Nazywa Implicitly Typed Arrays

Można utworzyć niejawnie wpisany tablicę, w której typ Instancja tablicy jest wywnioskowana z elementów określonych w inicjatorze tablicy . Reguły dowolnej zmiennej niejawnie wpisanej mają zastosowanie również do macierzy o niejawnie wpisanym typie.

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

Można go używać również do postrzępionych tablicy.