Pytania otagowane jako nullable-reference-types

W przypadku problemów związanych z typami odwołań dopuszczających wartość null w języku C # 8.

3
Co to jest ?[]? składnia w C #?
Podczas gdy studiowałem delegata, który jest w rzeczywistości klasą abstrakcyjną Delegate.cs, zobaczyłem następującą metodę, której nie rozumiem Dlaczego wartość zwracana wykorzystuje, ?mimo że jest to już typ referencyjny ( klasa ) ?[]? znaczenie w parametrze Czy możesz wytłumaczyć? public static Delegate? Combine(params Delegate?[]? delegates) { if (delegates == null || …






1
Co to jest nieznana nullability w C # 8?
W C # 8.0 możemy mieć typy zerowalne. Dokumenty stwierdzają, że istnieją 4 rodzaje zerowalności. Pierwsze 3 są dość jasne, ale nie rozumiem sensu „nieznane”. Dokumenty mówią, że używa się go z rodzajami, ale kiedy próbuję wywołać metodę na nieograniczonej zmiennej typu T w rodzajach, to po prostu ostrzega, jakby …


1
Informacje o typie odwołania do wartości zerowej nie zostały ujawnione przez FirstOrDefault
Chciałem przetestować nową funkcję zerowania typów odwołań w C # 8.0. Rozpocząłem nowy projekt ukierunkowany na .NET Core 3.0, włączyłem typy zerowalne w .csprojpliku i zacząłem kodować. Utworzyłem prostą listę, która bierze a string[]i zwraca stringw tej tablicy, która jest równa abc. Teraz, ponieważ nie jestem pewien, czy abcrzeczywiście istnieje …

2
Dlaczego otrzymujemy ostrzeżenie o zerowym odwołaniu, gdy odwołanie zerowe wydaje się niemożliwe?
Po przeczytaniu tego pytania na temat HNQ, zacząłem czytać o Nullable Reference Type w C # 8 i przeprowadziłem kilka eksperymentów. Mam świadomość, że 9 razy na 10, a nawet częściej, gdy ktoś mówi: „Znalazłem błąd kompilatora!” dzieje się tak zgodnie z projektem i własnym nieporozumieniem. A ponieważ zacząłem przyglądać …


2
C # nie może nadać typowi „notnull” wartości null
Próbuję stworzyć typ podobny do Rust'a Resultlub Haskella Eitheri mam tak daleko: public struct Result<TResult, TError> where TResult : notnull where TError : notnull { private readonly OneOf<TResult, TError> Value; public Result(TResult result) => Value = result; public Result(TError error) => Value = error; public static implicit operator Result<TResult, TError>(TResult …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.