Сообщение 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
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
то есть будет тоже самое
Найди различия с твоим примером
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);
Найди различия с твоим примером