Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 99
- Предыдущая
- 99/642
- Следующая
Для указания способности иметь значение
nullnull?System.Nullable<T>ТВключение ссылочных типов, допускающих null
Поддержка для ссылочных типов, допускающих
nullnull• Контекст с заметками о допустимости значения
null:null(?)null• Контекст с предупреждениями о допустимости значения
null:nullЧтобы увидеть их в действии, создайте новый проект консольного приложения по имени
FunWithNullableReferenceTypesnull<Nullable>
<Project Sdk="Microsoft .NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> <b><Nullable>enable</Nullable></b> </PropertyGroup></Project>Элемент
<Nullable>#nullable
Ссылочные типы, допускающие null, в действии
Во многом из-за важности изменения ошибки с типами, допускающими значение
nullProgram.cspublic class TestClass{ public string Name { get; set; } public int Age { get; set; }}Как видите, это просто нормальный класс. Возможность принятия значения
nullstring? nullableString = null;TestClass? myNullableClass = null;Настройка в файле проекта помещает весь проект в контекст допустимости значения
nullstringTestClassnull?nullnullnull// Предупреждение CS8600 Converting null literal or possible null// value to non-nullable type// Преобразование литерала null или возможного значения null// в тип, не допускающий nullTestClass myNonNullableClass = myNullableClass;Для более точного управления тем, где в проекте находятся контексты допустимости значения
null#nullablenull#nullable disableTestClass anotherNullableClass = null;// Предупреждение CS8632 The annotation for nullable reference types// should only be used in code within a '#nullable' annotations// Заметка для ссылочных типов, допускающих значение null,// должна использоваться только в коде внутри// #nullable enable annotationsTestClass? badDefinition = null;// Предупреждение CS8632 The annotation for nullable reference types// should only be used in code within a '#nullable' annotations// Заметка для ссылочных типов, допускающих значение null,// должна использоваться только в коде внутри#nullable enable annotationsstring? anotherNullableString = null;#nullable restoreВ заключение важно отметить, что ссылочные типы, допускающие значение
nullHasValueValueSystem.Nullable<T>- Предыдущая
- 99/642
- Следующая
