Autor Beitrag
cybermailer
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 27.05.13 21:20 
Hallo,

ich habe da mal eine Frage und hoffe jemand kann mir schlüssig etwas erklären:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: cybermailer
cybermailer Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 27.05.13 22:04 
Super Danke!