Share via


Standardvärden för C#-typer (C#-referens)

I följande tabell visas standardvärdena för C#-typer:

Typ Default value
Alla referenstyper null
Alla inbyggda numeriska inbyggda typer 0 (noll)
Valfri inbyggd numerisk typ av flyttal 0 (noll)
Bool false
Char '\0' (U+0000)
Enum Värdet som skapas av uttrycket (E)0, där E är uppräkningsidentifieraren.
Struct Värdet som skapas genom att ange alla fält av värdetyp till deras standardvärden och alla fält av referenstyp till null.
Valfri nullbar värdetyp En instans där egenskapen HasValue är false och egenskapen Value är odefinierad. Standardvärdet kallas även null-värdet för en nullbar värdetyp.

Standardvärdeuttryck

Använd operatorn default för att skapa standardvärdet för en typ, vilket visas i följande exempel:

int a = default(int);

Du kan använda literalen default för att initiera en variabel med standardvärdet för dess typ:

int a = default;

Parameterlös konstruktor av en värdetyp

För en värdetyp genererar den implicita parameterlösa konstruktorn också standardvärdet för typen, vilket visas i följande exempel:

var n = new System.Numerics.Complex();
Console.WriteLine(n);  // output: (0, 0)

Om instansen vid körning representerar System.Type en värdetyp kan du använda Activator.CreateInstance(Type) metoden för att anropa den parameterlösa konstruktorn för att hämta standardvärdet för typen.

Kommentar

I C# 10 och senare kan en strukturtyp (som är en värdetyp) ha en explicit parameterlös konstruktor som kan generera ett icke-standardvärde av typen. Därför rekommenderar vi att du använder operatorn default eller literalen default för att skapa standardvärdet för en typ.

Språkspecifikation för C#

Mer information finns i följande avsnitt i C#-språkspecifikationen:

Se även