Lest doch mal den verlinkten Thread im C#-Forum.
Da habe ich bereits genau beschrieben, was Name für eine Property ist.
Die Property Name ist vom Typ string und bietet Lese- und Schreibzugriff auf ein Feld.
Name zeigt an der Stelle auf den String "field" und ist daher auf jeden Fall ungleich Null.
hovered ist ganz normal über den Konstruktor erzeugt.
[edit]
Was noch von Belang sein könnte:
Zitat von
Implementation im C#F:
Code:
if (hovered != null)
{
//MessageBox.Show((hovered == null).ToString());
MessageBox.Show(hovered.Name); // Gibt "field" aus
MessageBox.Show((hovered == null).ToString()); // Gibt "true" aus
if (hovered.IsSensitive())
hovered.AsSensitive().MouseDown(e.X - hovered.Left, e.Y - hovered.Top);
}
Hier tritt keine
Exception auf.
Aber nach dem Zugriff auf Name ist hovered null.
[edit2]
Mal zur Aufklärung über hovered's Member:
- string Name: Property mit Getter und Setter
- bool IsSensitive(): Extension Method, fragt ab, ob das Objekt ein bestimmtes Interface ((I)QuinSensitiveControl) implementiert.
- AsSensitive(): Extension Method, liefert Objekt als obiges Interface zurück.
hovered ist ein nichtstatisches Feld und hat einen Interfacetyp ((I)QuinDynamicControl).
(I)QuinSensitiveControl ist von (I)QuinDynamicControl abgeleitet.
Weil IsSensitive() und AsSensitive() Extension Methods sind, gibt es keinen Fehler, wenn hovered null ist.
IsSensitive() liefert dann false zurück und AsSensitiv() null.