2015-12-04 3 views
1

Est-ce que vous pouvez définir les propriétés d'un objet dans un bloc en utilisant C#, comme vous écrivez un initialiseur d'objet?C#: Définition des propriétés d'un objet dans un seul bloc

Par exemple:

Button x = new Button(){ 
    Text = "Button", 
    BackColor = Color.White 
}; 

Y at-il une syntaxe similaire à ce qui peut être des propriétés après que l'objet a été créé?

Par exemple:

Button x = new Button(); 
x{ 
    Text = "Button", 
    BackColor = Color.White 
}; 
+0

double possible de [Avec équivalent bloc en C#?] (Http://stackoverflow.com/questions/481725/with-block-equivalent-in-c) – sstan

+0

Ceci est appelé ([initialiseur d'objet] https://msdn.microsoft.com/en-us/library/bb384062.aspx) et ne peut être utilisé que si 'new'ing un objet. Votre deuxième morceau de code n'est tout simplement pas valide C#. –

+0

Merci - Pieter Witvoet.Vous m'avez donné la réponse que je veux –

Répondre

0

Cette forme

Button x = new Button(){ 
    Text = "Button", 
    BackColor = Color.White 
}; 

est une partie de la syntaxe pour les constructeurs et les constructeurs seulement. Vous ne pouvez pas utiliser la même syntaxe sur la ligne suivante. Vous pouvez omettre le (), et utiliser un var pour le type de variable, pour vous donner le plus compact; Après la construction, la seule façon de le mettre à jour est de procéder à des affectations normales;

x.Text = "Button"; 
+0

Merci. Vous m'avez donné la réponse que je veux: "Fait partie de .." –

+0

cliquez sur cette tique grise pour moi? :) –

0

Peut-être que vous voulez?

Button x = new Button(); 
x.Text = "Button"; 
x.BackColor = Color.White; 
+0

Non, je ne le veux pas. Je sais que c'est moi. Je veux comme ce deuxième exemple. –

0

Vous pouvez le faire avec les initialiseurs de propriété.

Button x = new Button { Text = "Button", BackColor = Color.White }; 
+1

Ceci est identique à la première liste de la question. OP demande la possibilité de faire cela sur l'instance elle-même une fois qu'elle a été créée. –

1

Vous pouvez le faire comme ceci; disons que vous avez une classe nommée Platypus.

Votre grand-père:

Platypus p = new Platypus(); 
p.CWeek = "1"; 
p.CompanyName = "Pies from Pablo"; 
p.PADescription = "Pennsylvania is the Keystone state (think cops)"; 

La façon dernier cri:

Platypus p = new Platypus 
{ 
    CWeek = "1", 
    CompanyName = "Pies from Pablo", 
    PADescription = "Pennsylvania is the Keystone state (think cops)" 
}; 
+1

cela doit être le code exemple le plus aléatoire que j'ai vu. Façon d'être créatif – bit2know

+0

Cela ne répond pas à la question du tout. Il demande une syntaxe spéciale pour définir les propriétés *** après *** l'objet est déjà créé. – sstan

+0

Celui qui comprend le mieux ce que je veux dire -sstan, merci. J'ai eu ma réponse. Il n'y a aucune indication de la façon dont je veux. –