![]() |
[Erledigt] Das mysteriöse null...
Irgendetwas geht hier nicht mit rechten Dingen zu sich...
Code:
Das soll mal einer verstehen ...
if (hovered != null) // Wird ausgeführt, also sollte hovered != null sein ...
{ MessageBox.Show((hovered == null).ToString()); // Gibt "false" aus MessageBox.Show(hovered.Name); // Gibt eine NullReferenceException, weil hovered == null ist????? MessageBox.Show((hovered == null).ToString()); // Hier übrigens die oben beschriebene Abfrage, // IsSensitive und AsSensitive sind Extension Methods if (hovered.IsSensitive()) hovered.AsSensitive().MouseDown(e.X - hovered.Left, e.Y - hovered.Top); } Ist hovered jetzt == null oder != null? Nein, ich benutze keine Threads. Und nein, ich gebe nirgendwo von Hand Objekte frei. Siehe auch: ![]() |
AW: Das mysteriöse null...
"!=" bedeutet m.E. "ungleich"
"==" bedeutet m.E. "gleich" "=" bedeutet "zuweisen" |
AW: Das mysteriöse null...
Danke, weiß ich, ist auch nicht das Problem :wink:
|
AW: Das mysteriöse null...
Ja, hab´s auch gerade erkannt...
(Du warst aber schneller :wink:) |
AW: Das mysteriöse null...
hovered.Name == null?
hovered != null aber kein gültiger Zeiger? Vermutlich letzteres, weil die ganze Testaktion sicher durch einen unerwarteten Fehler bei Zugriff auf IsSensitive aufgetreten ist. Ausser Name und IsSensitive wurden mit null initialisiert. Letzteres auch mal Testen. €: IsSensitive ist ja eine Methode... Da das ja bei C# nicht vorkommen sollte, wie wurde hovered erzeugt, was ist hovered für eine Objekt-Klasse? |
AW: Das mysteriöse null...
![]() Zitat:
Hmmm ... ich dachte ich hätte es, aber bei meinem Test macht der == Operator eigentlich sehr genau das, was er soll .... |
AW: Das mysteriöse null...
ich nehme an, Name ist ein property in verkürzter Form
Code:
dann sollte es automatisch initialisiert sein?
public string Name { get; set; }
bei
Code:
ist name/Name null (wenn nicht im Constructor etc. initialisiert).
private string name;
public string Name { get { return name } usw. Ist halt nur ein Schuss ins Blaue, dass der Fehler nicht der vordergründig vermutete ist. |
AW: Das mysteriöse null...
Gibt es bei C# keine Funktion wie in Delphi Assigned?
|
AW: Das mysteriöse null...
jain, in C# gibt es ja keine klassischen Funktionen wie in Delphi.
Es gibt für einzelne Objekte aber Methoden, wie z.B. string.IsNullOrEmpty. Ausserdem sollte in C# ja ein Objekt-Zeiger immer gültig oder null sein, also nie null und ungültig. |
AW: Das mysteriöse null...
Und kennt die Klasse eine entsprechende Methode?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz