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
C # 8.0 wprowadza wygodny sposób dzielenia tablic - zobacz oficjalny wpis na blogu C # 8.0 . Składnia dostępu do ostatniego elementu tablicy to int value[] = { 10, 11, 12, 13 }; int a = value[^1]; // 13 int b = value[^2]; // 12 Zastanawiam się, dlaczego indeksowanie …
W ustawieniach zaawansowanej kompilacji programu Visual Studio 2019 język C # 8 nie wydaje się być dostępny dla projektu .NET Framework, tylko (jak na poniższym obrazku) dla projektu .NET Core 3.0: Czy C # 8 obsługuje .NET Framework?
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(); } }
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 …
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 …
Zauważyłem, że w niektórych przypadkach Visual Studio zaleca to zrobić await using var disposable = new Disposable(); // Do something zamiast tego using var disposable = new Disposable(); // Do something Jaka jest różnica między usingi await using? Jak zdecydować, którego użyć?
Mam DTO, który jest wypełniany przez czytanie z tabeli DynamoDB. Powiedzmy, że obecnie wygląda to tak: public class Item { public string Id { get; set; } // PK so technically cannot be null public string Name { get; set; } // validation to prevent nulls but this doesn't stop …
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 …
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 …
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 …
Wydaje mi się, że tak naprawdę nie ma gwarancji, że zmienna nie dopuszczająca wartości zerowej nigdy nie będzie miała wartości null. Wyobraź sobie, że mam klasę, która ma jedną właściwość, która nie ma wartości zerowej: public class Foo { public Foo(string test) { Test = test; } public string Test …
Po tym, jak C # 5 wprowadził model asynci awaitprogramowanie asynchroniczne, społeczność C # doszła do konwencji nazewnictwa, aby dodać sufiks „Async” do metod zwracających oczekiwany typ, taki jak ten: interface Foo { Task BarAsync(); } Od tego czasu napisano wiele analizatorów kodu statycznego (zarówno opartych na Roslyn, jak i …
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 …
Dlaczego zachowanie domyślnych metod interfejsu zostało zmienione w C # 8? W przeszłości następujący kod (gdy domyślne metody interfejsu nie były udostępniane): interface IDefaultInterfaceMethod { // By default, this method will be virtual, and the virtual keyword can be here used! virtual void DefaultMethod() { Console.WriteLine("I am a default method …
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ć …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.