Menu
Coddy logo textTech

Null Reference Basics

Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 31 von 66.

In C# repräsentiert eine Null-Referenz das Fehlen eines Objekts. Das Verständnis, wie man mit Null-Werten arbeitet, ist essenziell für das Schreiben von robustem Code.

Deklarieren Sie eine Variable vom Referenztyp (wie string) ohne Zuweisung eines Werts:

string name = null;

Die Variable 'name' enthält jetzt eine Null-Referenz, was bedeutet, dass sie auf kein Objekt im Speicher verweist.

Das Verwenden einer Nullreferenz ohne Überprüfung kann Laufzeitfehler verursachen:

string name = null;
// This will throw a NullReferenceException
int length = name.Length;

Sie können prüfen, ob eine Referenz null ist, bevor Sie sie verwenden:

string name = null;
if (name != null)
{
    // Hier ist es sicher, name zu verwenden
    int length = name.Length;
}

Sie können der Variable auch einen nicht-null-Wert zuweisen:

string name = null;
name = "John";
// Now it's safe to use name
int length = name.Length; // length will be 4
challenge icon

Aufgabe

Einfach

Erstellen Sie eine Methode namens ProcessName, die einen String-Parameter namens name annimmt. Die Methode sollte:

  1. Überprüfen, ob der Name null ist
  2. Wenn der Name null ist, ausgeben: "Name is null"
  3. Wenn der Name nicht null ist, ausgeben: "Name length is X" (wobei X die Länge des Namens ist)

Spickzettel

Eine null-Referenz stellt das Fehlen eines Objekts in C# dar.

Deklarieren Sie eine Referenztyp-Variable mit null:

string name = null;

Das Verwenden von null-Referenzen ohne Überprüfung verursacht Laufzeitfehler:

string name = null;
// This will throw a NullReferenceException
int length = name.Length;

Überprüfen Sie vor der Verwendung auf null:

string name = null;
if (name != null)
{
    // Safe to use name here
    int length = name.Length;
}

Weisen Sie einen nicht-null-Wert zu, um die Verwendung sicher zu machen:

string name = null;
name = "John";
int length = name.Length; // length will be 4

Probier es selbst

using System;

class Program
{
    public static void ProcessName(string name)
    {
        // Schreibe deinen Code hier
    }
    
    static void Main(string[] args)
    {
        string input = Console.ReadLine();
        
        // Konvertiere den "null"-String zu einem echten null
        string name = input.ToLower() == "null" ? null : input;
        
        ProcessName(name);
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf