2010-11-24 12 views
2

Je suis actuellement enseigner moi-même C#, mais je suis confus par la syntaxe suivante:A C# question de syntaxe

new Deck(new Card[] {}) 

où le constructeur de plate-forme ressemble à ceci:

public Deck(IEnumerable<Card> initialCards) 

ce qui ne signifie pas le bit {}?

Répondre

10

Il s'agit d'un array initializer et, dans ce cas, initialise un tableau vide.

Il peut également être utilisé comme suit:

int[] bling = new [] { 1, 2, 3 }; 

ou

int[] bling = { 1, 2, 3 }; 
0

Il est un initialiseur de collection, peut être utilisé comme suit

new Card[] { 
    new Card(), 
    new Card(), 
    new Card() 
}; 

Pour initialisation pour un tableau de des cartes de longueur 3 contenant trois objets de carte. Comme vous l'avez, ce sera un tableau vide.

+5

Je pense que le terme est [tableau initialiseur] (http://msdn.microsoft.com/en-us/library/aa664573%28VS.71%29.aspx) . Les initialiseurs de collection (http://msdn.microsoft.com/en-us/library/bb384062.aspx) fonctionnent en appelant 'Add', ce qui n'a pas de sens pour un tableau. –

-5

Il initialise un array.If vide vous avez une classe comme ceci:

class student { 
    private string name; 
    private int age; 
} 

vous pouvez initialiser ceci:

student a = new student { name = "a", age = 10}; 

Désolé pour mon erreur ci-dessus. Vous pouvez initilize un tableau de l'étudiant:

student[] students = new student[] {new student {name = "a", age = 10}, new student {name = "b", age = 20 }}; 
+1

C'est correct, mais un peu à côté du point. –

+0

Le dernier exemple est juste faux. –

+0

Merci Matthew :) – nXqd