Информация об изменениях

Сообщение Re[3]: C# какая альтернатива return null? от 13.08.2023 11:21

Изменено 13.08.2023 19:15 Serginio1

Re[3]: C# какая альтернатива return null?
Здравствуйте, Разраб, Вы писали:

A>>Это пожалуй и всё. Мой самый предпочитамый способ — это способ №1, но и другие тоже приходится иногда использовать.


Р>Второй с тасками не работает. так что мимо.

Р>Первый да, но ведь оно и до ? работало.
Р>Усложняют шарп до крестов. Потом каятся будут.

Кстати https://stackoverflow.com/questions/58681729/net-non-nullable-reference-type-and-out-parameters

https://learn.microsoft.com/ru-ru/dotnet/csharp/language-reference/attributes/nullable-analysis

[return: MaybeNull]
static string Find(string key)
{
return key == "" ? null : key;
}

string value1 = Find("key"); // Warning CS8600 Converting null literal or possible null value to non-nullable type.
string? value2 = Find("key"); // No warning
var value3 = Find("key"); // The inferred type is 'string?'


А насчет кортежей так по мне как раз и удобно использовать их вместо TryGetValue или Optional
Для кортежей можно попробовать NotNullIfNotNull
https://devblogs.microsoft.com/dotnet/try-out-nullable-reference-types/
Re[3]: C# какая альтернатива return null?
Здравствуйте, Разраб, Вы писали:

A>>Это пожалуй и всё. Мой самый предпочитамый способ — это способ №1, но и другие тоже приходится иногда использовать.


Р>Второй с тасками не работает. так что мимо.

Р>Первый да, но ведь оно и до ? работало.
Р>Усложняют шарп до крестов. Потом каятся будут.

Кстати https://stackoverflow.com/questions/58681729/net-non-nullable-reference-type-and-out-parameters

https://learn.microsoft.com/ru-ru/dotnet/csharp/language-reference/attributes/nullable-analysis

[return: MaybeNull]
static string Find(string key)
{
    return key == "" ? null : key;
}

string value1 = Find("key"); // Warning CS8600 Converting null literal or possible null value to non-nullable type.
string? value2 = Find("key"); // No warning
var value3 = Find("key"); // The inferred type is 'string?'


А насчет кортежей так по мне как раз и удобно использовать их вместо TryGetValue или Optional
Для кортежей можно попробовать NotNullIfNotNull
https://devblogs.microsoft.com/dotnet/try-out-nullable-reference-types/