Warum funktioniert Button btn = sender as Button; seit Visual Studio nicht mehr?

1 Antwort

Warum weist du überhaupt das Object Sender explicit einem Button-Objekt zu?

Ist doch völlig egal wer den Delegaten aufruft. Wenn Du unbedingt eine locale Variable als Kopie von Sender benötigst, genügt eine implizite Typisierung

var btn = sender;

Da stimmt der Typ immer und da Sender nur ein von Form abgeleitetes Object sein kann, ist ein eventueller Abgleich von Properties kein Problem. (Den gleichen Delegaten könnte man auch mit eine Timerobject oder einem "Enter" aus einer TextBox aufrufen.) Wäre doch zu blöd, wenn man diese Objekte mit roher Gewalt in einen Button umwandeln würde 🤮. Bei derartigen "as Type"-Aktionen bahnt sich irgendwann neuer Ärger an.

Wer hat Dir solchen Quatsch beigebracht?