Ich hatte kürzlich einige Probleme mit einer benutzerdefinierten Klasse:
Ein Benutzersteuerelement hatte eine öffentliche Eigenschaft, die von einem benutzerdefinierten Klassentyp war. Der Designer versucht standardmäßig, ihr einen Wert zuzuweisen, so dass im Code des Designers die Zeile userControlThing.CustomClassProperty = null
wurde automatisch hinzugefügt.
Die Absicht war, die Benutzersteuerung während der Ausführung des Programms jederzeit mit einer benutzerdefinierten Klasse zu versehen (um für den Benutzer sichtbare Werte zu ändern). Da die set {}
Teil nicht auf Nullwerte geprüft hat, sind verschiedene Fehler aufgetreten.
Die Lösung bestand darin, die Eigenschaft in eine private Eigenschaft umzuwandeln und zwei öffentliche Methoden zum Setzen und Abrufen des Wertes zu verwenden. Der Designer versucht, die Eigenschaften automatisch zuzuweisen, lässt aber die Methoden in Ruhe.