Seltsame Notation - bräuchte Hilfe um das zu verstehen

11/08/2009 - 21:52 von Christoph Hager | Report spam
Hallo

Ich habe mir gerade ein Stück Code angesehen und bin auf eine sehr
seltsame Notation gestossen.
Hier erstmal der Codeschnippsel:

-
image = new UIImageView (UIScreen.MainScreen.Bounds) {
Image = UIImage.FromFile ("Background.png")
};
text = new UITextField (new RectangleF (44, 32, 232, 31)) {
BorderStyle = UITextBorderStyle.RoundedRect,
TextColor = UIColor.Black,
BackgroundColor = UIColor.Black,
ClearButtonMode = UITextFieldViewMode.WhileEditing,
Placeholder = "Hello world",
};
text.ShouldReturn = delegate (UITextField theTextfield) {
text.ResignFirstResponder ();

label.Text = text.Text;
return true;
};

label = new UILabel (new RectangleF (20, 120, 280, 44)){
TextColor = UIColor.Gray,
BackgroundColor = UIColor.Black,
Text = text.Placeholder
};

var vc = new ViewController (this) { image, text, label };
-
text = new UITextField (new RectangleF (44, 32, 232, 31)) {
BorderStyle = UITextBorderStyle.RoundedRect,


also zuerst wird ein neues Objekt vom Typ UITextField erzeugt das wohl
ein Objekt vom Typ RectangleF als Parameter braucht. Soweit
verstanden. Aber was soll danach die geschweifte Klammer und die
weiteren Zuordnungen?

wohl was àhnliches:
var vc = new ViewController (this) { image, text, label };
was macht dann diese Zeile? (Ausser einem Objekt vom Typ
ViewController zu erzeugen)

Danke
Christoph
 

Lesen sie die antworten

#1 Elmar Boye
11/08/2009 - 22:30 | Warnen spam
Hallo Christoph,

"Christoph Hager" schrieb ...
Ich habe mir gerade ein Stück Code angesehen und bin auf eine sehr
seltsame Notation gestossen.



Du bist auf Neuerungen von C# 3.0 gestoßen.

text = new UITextField (new RectangleF (44, 32, 232, 31)) {
BorderStyle = UITextBorderStyle.RoundedRect,
also zuerst wird ein neues Objekt vom Typ UITextField erzeugt das wohl
ein Objekt vom Typ RectangleF als Parameter braucht. Soweit
verstanden. Aber was soll danach die geschweifte Klammer und die
weiteren Zuordnungen?



http://msdn.microsoft.com/de-de/lib...84062.aspx
"Objekt- und Auflistungsinitialisierer (C#-Programmierhandbuch)"

var vc = new ViewController (this) { image, text, label };
was macht dann diese Zeile? (Ausser einem Objekt vom Typ
ViewController zu erzeugen)



http://msdn.microsoft.com/de-de/lib...84061.aspx
"Implizit typisierte lokale Variablen (C#-Programmierhandbuch"

und da gibt es noch mehr:
http://msdn.microsoft.com/de-de/vcs...36745.aspx

Gruß Elmar

Ähnliche fragen