Pytania otagowane jako c#-8.0

W przypadku problemów związanych z programowaniem w wersji 8.0 języka C #. Ta wersja dodaje typy odwołań dopuszczające wartość null, domyślne metody interfejsu, elementy wyliczeniowe asynchroniczne oraz inne funkcje i ulepszenia



3
Co to znaczy?
Czasami widzę następujący kod i nie mam pojęcia, co wyrażenie faktycznie testuje. public static void Something(string[] value) { if (value is { }) { DoSomethingElse(); } }
36 c#  c#-8.0 

2
Utwórz pusty IAsyncEnumerable
Mam interfejs napisany w ten sposób: public interface IItemRetriever { public IAsyncEnumerable<string> GetItemsAsync(); } Chcę napisać pustą implementację, która nie zwraca żadnego elementu, na przykład: public class EmptyItemRetriever : IItemRetriever { public IAsyncEnumerable<string> GetItemsAsync() { // What do I put here if nothing is to be done? } } Gdyby …

1
Dlaczego mogę zadeklarować zmienną podrzędną o takiej samej nazwie jak zmienna w zakresie nadrzędnym?
Niedawno napisałem jakiś kod, w którym nieumyślnie ponownie użyłem nazwy zmiennej jako parametru akcji zadeklarowanej w funkcji, która już ma zmienną o tej samej nazwie. Na przykład: var x = 1; Action<int> myAction = (x) => { Console.WriteLine(x); }; Kiedy zauważyłem duplikację, zdziwiłem się, widząc, że kod został skompilowany i …



1
Konwertuj IAsyncEnumerable na List
Więc w C # 8 dodaliśmy IAsyncEnumerableinterfejs. Jeśli mamy coś normalnego IEnumerable, możemy z niego zrobić Listdowolną inną kolekcję. Dzięki Linq tam. var range = Enumerable.Range(0, 100); var list = range.ToList(); Cóż, teraz chcę przekonwertować moje IAsyncEnumerablena Listi to oczywiście asynchronicznie. Czy istnieją już implementacje Linq dla tego przypadku? Jeśli …

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 …

4
Asynchronicznie deserializowanie listy za pomocą System.Text.Json
Powiedzmy, że żądam dużego pliku json, który zawiera listę wielu obiektów. Nie chcę, aby były w pamięci od razu, ale wolałbym je czytać i przetwarzać jeden po drugim. Więc muszę przekształcić System.IO.Streamstrumień asynchroniczny w plik IAsyncEnumerable<T>. Jak do tego użyć nowego System.Text.Jsoninterfejsu API? private async IAsyncEnumerable<T> GetList<T>(Uri url, CancellationToken cancellationToken …



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ć …

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.