2010-12-16 7 views

Antwort

1

konvertieren möchte Unter der Annahme, dass der Absender in ein Objekt eingetippt ist (mit anderen Worten, es gibt keine benutzerdefinierten Konvertierungsoperatoren), können Sie einfach den Absender verwenden, wie Sie es in dem C# -Code tun würden. Der genauen gleiche Code wäre:

b3 = Absender

C# braucht nur dies zu tun, weil sie will Objekte statisch eingeben. Wenn Sie anstelle von Button auf ein Interface für ein Objekt werfen, wo es explizit implementiert wird, wird es komplizierter.

+0

Der C# -Compiler kann in diesem Fall eine implizite oder explizite Umwandlung in einen "Button" einfügen, wodurch möglicherweise ein überladener Operator auf "sender" aufgerufen wird. Dies ist ein Verhalten, das Sie in IronPython nicht erhalten. – Gabe

+0

Das ist der Grund, warum ich dies mit "Es gibt keine benutzerdefinierten Konvertierungsoperatoren" qualifiziert habe. Angenommen, es handelt sich hierbei um eine WinForms- oder WPF-Schaltfläche, und wir setzen das Objekt (wahrscheinlich) um, dann gibt es hier keine benutzerdefinierten Konvertierungsoperatoren. Das liegt daran, dass die WinForms- und WPF-Hierarchien die benutzerdefinierten Konvertierungsoperatoren nicht definieren und Sie keine für das Objekt hinzufügen können. –

+0

Und wenn Sie sicherstellen möchten, dass benutzerdefinierte Konvertierungen ausgeführt werden, können Sie clr.Convert aufrufen. –