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

Сообщение Re[21]: C# 8 и null-допустимость - ошибка на миллиард от 14.05.2020 17:13

Изменено 14.05.2020 17:42 Serginio1

Re[21]: C# 8 и null-допустимость - ошибка на миллиард
Здравствуйте, karbofos42, Вы писали:





S>>В твоем примере так или иначе нужнапроверка на null.

S>>В шапрпе с вводом NotNull классов это не нужно.

K>И как же в шарпе будет кастоваться без такой проверки Null класс в его NotNull аналог?

K>Эта проверка собственно и сейчас есть при конвертации int? в int

Если нужно кастоваться разумеется проверка на null. Но на то он и каст.
Ну разумеется если ты работаешь с нуллабля типами тебе приходится проверять. Но большинство работает с int и не работают с int?

Тоже самое и с С++ если ты работаешь с *A. Тебе нужно сделать проверку на null.
Другое дело, что сишники привыкли работать не с кучей, а со стеком. Структура не может быть null


Нужно просто технику программирования поменять
https://docs.microsoft.com/ru-ru/dotnet/csharp/nullable-references
https://docs.microsoft.com/ru-ru/dotnet/csharp/nullable-migration-strategies
Re[21]: C# 8 и null-допустимость - ошибка на миллиард
Здравствуйте, karbofos42, Вы писали:





S>>В твоем примере так или иначе нужнапроверка на null.

S>>В шапрпе с вводом NotNull классов это не нужно.

K>И как же в шарпе будет кастоваться без такой проверки Null класс в его NotNull аналог?

K>Эта проверка собственно и сейчас есть при конвертации int? в int

Если нужно кастоваться разумеется проверка на null. Но на то он и каст.
Ну разумеется если ты работаешь с нуллабля типами тебе приходится проверять. Но большинство работает с int и не работают с int?

Тоже самое и с С++ если ты работаешь с *A. Тебе нужно сделать проверку на null.
Другое дело, что сишники привыкли работать не с кучей, а со стеком. Структура не может быть null


Нужно просто технику программирования поменять
https://docs.microsoft.com/ru-ru/dotnet/csharp/nullable-references
https://docs.microsoft.com/ru-ru/dotnet/csharp/nullable-migration-strategies

https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/february/essential-net-csharp-8-0-and-nullable-reference-types
то есть будет тоже самое

static string? GetNullableString()

static void Тест1(string s)
{
// проверка на null не нужна
Тест2(s);
}

static void Тест2(string s)
{
// проверка на null не нужна
}


var s=GetNullableString();

 if (s==null)
   вызовем исключение 

string notNullS=s!;

Тест1(notNullS);


Найди различия с твоим примером