tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
437
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Divi
    Divi Divi ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    238
    Hi Leute
    Ich hab irgendwo einen Fehler gemacht, so dass eine Funktion zweimal aufgerufen wird und das darin erstellte Objekt auch zweimal erstellt wird. Deswegen hier die Frage: Ist es möglich, dass ich Abfrage, ob ein Objekt vorhanden ist oder nicht (wie in PHP isset()) ...
    Ich hab auch schon versucht es auf "null" zu setzen und dann statt des Erstellens abzufragen, ob der Wert noch null ist, aber dann weigert sich der Compiler anständig zu arbeiten, weil er an der entsprechenden Stelle das Objekt nicht mehr erstellen will, wenn es bereits den Wert "null" hat.
     

  2. #2
    yan1 yan1 ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Ort
    Kirchdorf a. d. Krems, OÖ
    Beiträge
    213
    Ich glaube ich verstehe deine Frage nicht ganz.

    object myObject;

    //Code...

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    //abfragen, ob myObject auf ein objekt zeigt
    if (myObject != null)
    {
      Console.WriteLine("Objekt wurde schon einmal erstellt, ich brauche es nicht nomals erstellen.");
    }
    else
    {
      //objekt erstellen
      myObject = new MyClass(); //oder irgendeine klasse halt...
    }
    //das wars... so hast du sicher kein zweites mal ein objekt erstellt

    cya, yan
     

  3. #3
    Avatar von Divi
    Divi Divi ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    238
    Also kann man standartmäßig alles mit null vergleichen und damit erfahren, ob es vorhanden ist? Wenn das so geht, ist die Frage geklärt ... nur ging ich davon aus, dass das unsauber ist. ..
     

  4. #4
    yan1 yan1 ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Ort
    Kirchdorf a. d. Krems, OÖ
    Beiträge
    213
    ja, wenn du in C# eine Varable vom Typ Objekt (oder deiner eigenen Klasse) anlegst, dann ist das nichts anderes als ein zeiger, der auf NULL zeigst.

    Erst wenn du den new Operator Verwendest, wird auch wirklich der Speicherplatz anglegt, und die Varable zeigt dann nicht mehr auf NULL, sondern auf den Speicherplatz, wo dein Object liegt.
     

  5. #5
    yan1 yan1 ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Ort
    Kirchdorf a. d. Krems, OÖ
    Beiträge
    213
    achja, was noch wichtig ist:

    Bei einem Integer oder char und bool etc. kann man nicht abfragen ob diese Null sind, da diese keine Zeiger auf Speicherplätze sind, sondern bei diesen Standarddatentypen wird bei der Varablen Deklaration der Speicher angelegt (Bei einem String kann man schon auf NULL abfragen).
     

Ähnliche Themen

  1. Feststellen ob Entf gedtrückt wurde
    Von Darkas im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 05.08.07, 20:57
  2. Antworten: 2
    Letzter Beitrag: 14.05.07, 11:01
  3. Feststellen, wie ein Programm gestartet wurde
    Von jokey2 im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 26.08.05, 18:51
  4. Antworten: 1
    Letzter Beitrag: 24.01.05, 12:26
  5. Feststellen, ob ein Flash-Movie abgespielt wurde?
    Von Stoneheart im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 12.12.04, 19:03