AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen .NET-Sprachen C# [Erledigt] Das mysteriöse null...
Thema durchsuchen
Ansicht
Themen-Optionen

[Erledigt] Das mysteriöse null...

Ein Thema von implementation · begonnen am 10. Okt 2010 · letzter Beitrag vom 11. Okt 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#1

[Erledigt] Das mysteriöse null...

  Alt 10. Okt 2010, 21:13
Irgendetwas geht hier nicht mit rechten Dingen zu sich...
Code:
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);
}
Das soll mal einer verstehen ...
Ist hovered jetzt == null oder != null?
Nein, ich benutze keine Threads.
Und nein, ich gebe nirgendwo von Hand Objekte frei.

Siehe auch: http://www.c-sharp-forum.de/viewtopic.php?t=101986

Geändert von implementation (11. Okt 2010 um 17:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 21:19
"!=" bedeutet m.E. "ungleich"
"==" bedeutet m.E. "gleich"
"=" bedeutet "zuweisen"
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 21:20
Danke, weiß ich, ist auch nicht das Problem
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 21:21
Ja, hab´s auch gerade erkannt...
(Du warst aber schneller )
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 21:37
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?

Geändert von Satty67 (10. Okt 2010 um 21:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 21:43
http://msdn.microsoft.com/de-de/library/edakx9da.aspx
Zitat:
// Equality operator also returns false when one
// operand is null.


Hmmm ... ich dachte ich hätte es, aber bei meinem Test macht der == Operator eigentlich sehr genau das, was er soll ....

Geändert von jfheins (10. Okt 2010 um 21:49 Uhr)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 22:11
ich nehme an, Name ist ein property in verkürzter Form
Code:
public string Name { get; set; }
dann sollte es automatisch initialisiert sein?

bei
Code:
private string name;
public string Name
{
  get { return name } usw.
ist name/Name null (wenn nicht im Constructor etc. initialisiert).

Ist halt nur ein Schuss ins Blaue, dass der Fehler nicht der vordergründig vermutete ist.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 22:24
Gibt es bei C# keine Funktion wie in Delphi Assigned?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 22:48
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.

Geändert von Satty67 (10. Okt 2010 um 22:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: Das mysteriöse null...

  Alt 10. Okt 2010, 23:05
Und kennt die Klasse eine entsprechende Methode?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz