Operator ?? (C#-Referenz)
Der ??-Operator gibt den linken Operanden zurück, falls dieser nicht NULL ist. Andernfalls wird der rechte Operand zurückgegeben.
Ein Typ, der auf NULL festgelegt werden kann, kann einen Wert enthalten oder nicht definiert sein. Der ??-Operator definiert die Standardwerte, die zurückgegeben werden sollen, wenn ein Typ, der auf NULL festgelegt werden kann, einem Typ zugewiesen wird, der nicht auf NULL festgelegt werden kann. Der Versuch, einen Typ, der auf NULL festgelegt werden kann, einem Typ, der nicht auf NULL festgelegt werden kann, ohne Verwendung des ??-Operators zuzuweisen, verursacht einen Kompilierungsfehler. Wenn bei einer Typumwandlung der Typ, der auf NULL festgelegt werden kann, aktuell nicht definiert ist, wird eine InvalidOperationException-Ausnahme ausgelöst.
Weitere Informationen finden Sie unter Typen, die NULL-Werte zulassen (C#-Programmierhandbuch).
// nullable_type_operator.cs
using System;
class MainClass
{
static int? GetNullableInt()
{
return null;
}
static string GetStringValue()
{
return null;
}
static void Main()
{
// ?? operator example.
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
// Assign i to return value of method, unless
// return value is null, in which case assign
// default value of int to i.
int i = GetNullableInt() ?? default(int);
string s = GetStringValue();
// ?? also works with reference types.
// Display contents of s, unless s is null,
// in which case display "Unspecified".
Console.WriteLine(s ?? "Unspecified");
}
}
Referenz
C#-OperatorenKonzepte
C# ProgrammierhandbuchTypen, die NULL-Werte zulassen (C#-Programmierhandbuch)