| Autor |
Nachricht |
Samyboy
Mitglied
Benutzerprofil
Anmeldungsdatum: 13.10.2009
Beiträge: 250
|
Samyboy Mitglied
16:53:52 07.03.2010 Titel: |
dynamic_cast??? |
Zitieren |
Hallo, ich habe gerade meine erste C# Applikation geschrieben, nämlich einen kleinen Taschenrechner.
Die Zahlen sind als Buttons dargestellt und das zugehörige Event für jedes dieser Zahlen ist: onClickedNumber(object who, EventArg e);.
Nun stellt sich mir die Frage wie kann ich "object who" wieder zurück casten zu einem Button, um desses .Text Attribut herauszulesen? In C++ würde ich wahrscheinlich dynamic_cast verwenden, gibts in C# etwas dergleichen?
Momentan löse ich das so:
| C# Code: | private void onClickedNumber(object who, EventArgs e) {
// Is there an easier way? (C++ dynamic_cast?)
for (byte i = 0; i < 10; i++) {
if (who == m_allNumbers[i]) {
}
}
} | |
| C# Code: | private void onClickedNumber(object who, EventArgs e) {
// Is there an easier way? (C++ dynamic_cast?)
for (byte i = 0; i < 10; i++) {
if (who == m_allNumbers[i]) {
}
}
} | |
| C# Code: | private void onClickedNumber(object who, EventArgs e) {
// Is there an easier way? (C++ dynamic_cast?)
for (byte i = 0; i < 10; i++) {
if (who == m_allNumbers[i]) {
}
}
} | |
Danke bereits im voraus! |
|
|
|
 |
Firefighter
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.03.2007
Beiträge: 2818
|
Firefighter Mitglied
17:55:51 07.03.2010 Titel: |
|
Zitieren |
|
 |
Samyboy
Mitglied
Benutzerprofil
Anmeldungsdatum: 13.10.2009
Beiträge: 250
|
Samyboy Mitglied
18:04:40 07.03.2010 Titel: |
|
Zitieren |
| Firefighter schrieb: | | C# Code: | Button b = who as Button;
MessageBox.Show(b.Text);
| |
| C# Code: | Button b = who as Button;
MessageBox.Show(b.Text);
| |
| C# Code: | Button b = who as Button;
MessageBox.Show(b.Text);
| |
|
Dankeschön! Genau sowas hab ich gesucht |
|
|
|
 |
Doug_HH
Mitglied
Benutzerprofil
Anmeldungsdatum: 30.09.2007
Beiträge: 493
|
Doug_HH Mitglied
18:26:32 07.03.2010 Titel: |
|
Zitieren |
Oder
| C# Code: | | Button _newButton = (Button)sender; | |
| C# Code: | | Button _newButton = (Button)sender; | |
| C# Code: | | Button _newButton = (Button)sender; | |
|
_________________ The next time you think you are perfect, try walking on water.
www.rb-softarticle.com
|
|
 |
Rhombicosidodecahedron
Mitglied
Benutzerprofil
Anmeldungsdatum: 16.08.2006
Beiträge: 854
|
Rhombicosidodecahedron Mitglied
18:59:28 07.03.2010 Titel: |
|
Zitieren |
| Doug_HH schrieb: | Oder
| C# Code: | | Button _newButton = (Button)sender; | |
| C# Code: | | Button _newButton = (Button)sender; | |
| C# Code: | | Button _newButton = (Button)sender; | |
| Das ist glaube ich eher ein static_cast, da, wenn die Konvertierung schief geht, eine Ausnahmne ausgelöst wird und bei as nur null zurückgegeben wird (Auf das man auch Überprüfen sollte!). |
_________________ Gödelscher Unvollständigkeitssatz: Ein [mathematisches] System kann nicht zum Beweis seiner eigenen Widerspruchsfreiheit verwendet werden.
Rhomsche Schlussfolgerung: Ein Betriebssystem kann nicht zum Beweis seiner eigenen Virenfreiheit benutzt werden.
|
|
 |
Doug_HH
Mitglied
Benutzerprofil
Anmeldungsdatum: 30.09.2007
Beiträge: 493
|
Doug_HH Mitglied
20:39:31 07.03.2010 Titel: |
|
Zitieren |
Hast wohl recht, ist die besser Lösung...
| C# Code: | 1 2 3 4 5 6 7 8 9 10 | 1 2 3 4 5 6 7 8 9 10 | Button _a = sender as Button;
if (_a != null)
{
MessageBox.Show(_a.Name);
}
else
{
MessageBox.Show("Kein Button");
} | |
| C# Code: | 1 2 3 4 5 6 7 8 9 10 | Button _a = sender as Button;
if (_a != null)
{
MessageBox.Show(_a.Name);
}
else
{
MessageBox.Show("Kein Button");
} | |
| C# Code: | 1 2 3 4 5 6 7 8 9 10 | Button _a = sender as Button;
if (_a != null)
{
MessageBox.Show(_a.Name);
}
else
{
MessageBox.Show("Kein Button");
} | |
|
_________________ The next time you think you are perfect, try walking on water.
www.rb-softarticle.com
|
|
 |
David W
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.08.2005
Beiträge: 4630
|
David W Mitglied
15:54:45 08.03.2010 Titel: |
|
Zitieren |
Anzumerken sei aber noch das "as" nur für Typen funktionieren die auch null sein können. |
_________________ My Libraries | aniwen
|
|
 |
peso
Unregistrierter
|
peso Unregistrierter
12:59:58 12.03.2010 Titel: |
|
Zitieren |
Das ist hier aber nicht so schlimm, da es ja um ein 'object' handelt. |
|
|
|
 |