Entwickler-Ecke
C# - Die Sprache - kleine Verständnisfrage am Bsp Button
cybermailer - Mo 27.05.13 21:20
Titel: kleine Verständnisfrage am Bsp Button
Hallo,
ich habe da mal eine Frage und hoffe jemand kann mir schlüssig etwas erklären:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| private void button1_Click(object sender, RoutedEventArgs e) {
Button b = (Button)sender; b.Content = "Ich wurde gedrückt 1"; button1.Content = "Ich wurde gedrückt";
Button test = sender as Button; test.Content = "Ich wurde gedrückt 2";
} |
- ) Ist [(Button)sender] == [sender as Button] Nur andere Schreibweise oder gibt es noch andere Gründe?
- ) (object sender, RoutedEventArgs e) Was überliefern diese beiden Dinge eigentlich genau?
Object = das eigentliche Objekt, Event = Übermittelt es hat sich was getan?
Danke für Eure Hilfe!
jfheins - Mo 27.05.13 21:44
Die beiden casts haben schon unterschiedliche Verhaltensweisen. Falls das Objekt aber wirklich von dem Typen ist, passiert das gleiche. Der Unterschied kommt im Fehlerfall:
(xyz as Button) liefert null zurück,
(Button)xyz wirft eine InvalidCastException.
Wenn du dir sicher bist, dass der Cast immer stimmt, kannst du ruhig beide hernehmen, das nimmt sich dann nichts.
Was die beiden Parameter angibt: Der eine ist der "Absender", beantwortet also ggf. die Frage "Wo hat sich was getan? / Welcher Button war's denn jetzt?"
Der zweite Parameter übermittelt genauere Informationen, WAS sich getan hat. das ist bei einem Klick noch relativ trivial, aber z.B. bei einem Tastendruck findest du hier die Info, welche Taste gedrückt wurde. Bei einem Mausradereignis findest du hier Informationen, in welche Richtung das Mausrad gedreht wurde.
cybermailer - Mo 27.05.13 22:04
Super Danke!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!