Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 19482|Odpowiedź: 2

[Źródło] C# 8.0 może być typem referencji zerowej

[Skopiuj link]
Opublikowano 2022-3-26 16:40:21 | | | |
Przed C# 8.0 wszystkie typy odniesień mogły być zerowe. Typy odniesień zerowych to zestaw cech wprowadzonych w C# 8.0, które mogą być używane doMinimalizuj prawdopodobieństwo, że Twój kod będzie powodował rzuty w czasie wykonywania。 Typy odniesień z możliwością unieważnienia zawierają trzy funkcje, które pomagają uniknąć tych wyjątków, w tym możliwość jawnego oznaczania typów odniesień jako nieważnych:

  • Zoptymalizowana analiza statycznego przepływu w celu ustalenia, czy zmienna jest zerowa, zanim zostanie odwrócona.
  • Atrybuty używane do adnotacji API, aby Stream Analytics określała stan zerowy.
  • Adnotacje zmiennych, które deweloperzy mogą wykorzystać do jawnego deklarowania oczekiwanego stanu zerowego zmiennej.


Analiza stanu zerowego i adnotacje zmiennych są domyślnie wyłączone dla istniejących projektów, co oznacza, że wszystkie typy odniesień są nadal unieważniane. Począwszy od .NET 6, funkcje te są domyślnie włączane dla nowych projektów.

Dokumentacja:Logowanie do linku jest widoczne.

Co oznacza typ odniesienia, który może być null,Minimalizuj ryzyko, że Twoja aplikacja wygeneruje System.NullReferenceException podczas wykonywania

W projekcie, który tworzę z .NET 6, tworzę właściwość Name dla nowej właściwości, która wyświetla następujące ostrzeżenie:

Podczas wyjścia z konstruktora własność niezerowa "Nazwa" musi zawierać wartość niezerową. Rozważmy deklarowanie własności jako może być null.


Chociaż to ostrzeżenie, jest bardzo irytujące! Jak naprawić to ostrzeżenie? Domyślną wartością przypisania jest pusty ciąg tekstu, a kod wygląda następująco:

To znaczy, gdy własność nie jest przypisana ręcznie, domyślną wartością jest pusty ciąg znaków.

Przy użyciu zmiennej lokalnej,Rodzaj to sznurek? może także generować ostrzeżenia, jak pokazano na poniższym rysunku:



Rozwiązanie: ustal, czy zmienna jest null, zanim jej użyjesz, a jeśli tak, to nie wykonuj poniższego kodu lub myśliszZmienna nigdy nie może być zerowa, może być użyteArgumentNullException.ThrowIfNull(assemblyFullName); Ostrzeżenia również można usunąć! Innymi słowy, jeśli zmienna jest null, wywoła wyjątek bezpośrednio w czasie działania!

Podsumowanie: C# 8.0 wprowadził tę funkcję i osobiście uważam, że ma to na celu poprawę rygoru programistów i uniknięcie popełniania drobnych błędów.

Aby uzyskać więcej rozwiązań metod, które mogą być zerowe, prosimy odnaleźć w:Logowanie do linku jest widoczne.





Poprzedni:Zapytaj zdalny adres Git aktualnego projektu
Następny:ASP.NET Core (dwanaście) front-end JS, bundling CSS i kompresja
Opublikowano 2022-3-26 20:57:32 |
Naucz się uczyć
Opublikowano 2022-3-28 08:23:47 |
Przyjdź i ucz się
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com