Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 19482|Отговор: 2

[Източник] C# 8.0 може да бъде нулев референтен тип

[Копирай линк]
Публикувано на 26.03.2022 16:40:21 | | | |
Преди C# 8.0 всички референтни типове можеха да бъдат нулеви. Нулевите референтни типове се отнасят до набор от характеристики, въведени в C# 8.0, които могат да се използват заМинимизирай вероятността кодът ти да предизвика грешки по време на изпълнение。 Нулевите референтни типове включват три характеристики, които помагат за избягване на тези изключения, включително възможността за изрично маркиране на референтни типове като нулеви:

  • Оптимизиран анализ на статичния поток, за да се определи дали дадена променлива е нулева преди да бъде отнета от референтна връзка.
  • Атрибути, които се използват за анотиране на API-то, така че Stream Analytics да определя null състоянието.
  • Анотации на променливи, които разработчиците могат да използват, за да обявят изрично очакваното нулево състояние на променлива.


Анализът на нулевото състояние и анотациите на променливи са изключени по подразбиране за съществуващи проекти, което означава, че всички типове референции все още са нулевими. Започвайки с .NET 6, тези функции са активирани по подразбиране за нови проекти.

Документация:Входът към хиперлинк е видим.

Какво трябва да направи референтен тип, който може да е нулев.Минимизирайте вероятността приложението ви да изхвърли System.NullReferenceException по време на изпълнение

В проект, който разработвам с .NET 6, създавам свойство Име за ново свойство, което ме подканва със следното предупреждение:

При излизане от конструктора, ненулевото свойство "Име" трябва да съдържа ненулева стойност. Помислете да обявите имота като невалиден.


Въпреки че е предупреждение, е много досадно! Как да поправя това предупреждение? По подразбиране стойността за присвояване е празен низ, а кодът е следният:

Тоест, когато свойството не се присвоява ръчно, стандартната стойност на свойството е празен низ.

При използване на локална променлива,Типът е конец? може също да генерира предупреждения, както е показано на фигурата по-долу:



Решение: определи дали променливата е null, преди да я използваш, и ако е, не изпълнявай кода по-долу, иначе мислишПроменливата никога не може да бъде нулева, може да се използваArgumentNullException.ThrowIfNull(assemblyFullName); Предупрежденията също могат да бъдат премахнати! С други думи, ако променливата е null, тя ще хвърли изключение директно по време на изпълнение!

Резюме: C# 8.0 въведе тази функция и лично аз смятам, че тя е за подобряване на строгостта на разработчиците и избягване на някои ниско ниво грешки.

За още решения на методи, които могат да бъдат нулеви, моля, вижте с:Входът към хиперлинк е видим.





Предишен:Запитайте отдалечения адрес на Git на текущия проект
Следващ:ASP.NET Core (дванадесет) фронтенд JS, CSS пакетиране и компресия
Публикувано на 26.03.2022 20:57:32 |
Научи се да учиш
Публикувано на 28.03.2022 08:23:47 |
Ела и учи
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com