MaybeNull
return: MaybeNull - подсказка
анализатору, не проверка в рантайме.
Метод может вернуть null;
в примере печатают
res == null → True.
В начале файла - #nullable enable.
Синтаксис
[return: MaybeNull]
static string? Find() { return null; }
Пример
Давайте получить null из метода:
#nullable enable
using System;
using System.Diagnostics.CodeAnalysis;
class Program
{
[return: MaybeNull]
static string? Find()
{
return null;
}
static void Main()
{
string? res = Find();
bool isNull = res == null;
Console.WriteLine(isNull);
}
}
Результат выполнения кода:
True
Пример
Давайте вернуть строку в другом случае:
#nullable enable
using System;
using System.Diagnostics.CodeAnalysis;
class Program
{
[return: MaybeNull]
static string? Pick(bool giveText)
{
if (giveText)
{
return "abcde";
}
return null;
}
static void Main()
{
string? res = Pick(true);
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте снова проверить null:
#nullable enable
using System;
using System.Diagnostics.CodeAnalysis;
class Program
{
[return: MaybeNull]
static string? Pick(bool giveText)
{
if (giveText)
{
return "abcde";
}
return null;
}
static void Main()
{
string? res = Pick(false);
bool isNull = res == null;
Console.WriteLine(isNull);
}
}
Результат выполнения кода:
True
Смотрите также
-
NotNull,
результат не null -
MaybeNullWhen,
null при условии -
NotNullIfNotNull,
зависимость от аргумента -
NotNullWhen,
не null при true