Wersja języka C # wydana w 2017 roku, która dodała krotki wartości, funkcje lokalne, podstawowe dopasowywanie wzorców, odwołania lokalne i zwroty, async main i różne inne nowe funkcje. W większości przypadków należy również określić tag C #.
Zainstalowałem Visual Studio 15 Preview 3 i próbowałem użyć nowej funkcji krotki static void Main(string[] args) { var x = DoSomething(); Console.WriteLine(x.x); } static (int x, int y) DoSomething() { return (1, 2); } Podczas kompilacji pojawia się błąd: Predefiniowany typ „System.ValueTuple” 2 nie jest zdefiniowany ani importowany Zgodnie z …
W C # 7 możemy użyć if (x is null) return; zamiast if (x == null) return; Czy są jakieś zalety korzystania z nowego sposobu (poprzedni przykład) w stosunku do starego? Czy semantyka jest inna? Czy to tylko kwestia gustu? Jeśli nie, to kiedy powinienem stosować jeden na drugim? Odniesienie: …
Patrzę na nowe implementacje w C # 7.0 i wydaje mi się interesujące, że zaimplementowały funkcje lokalne, ale nie mogę sobie wyobrazić scenariusza, w którym funkcja lokalna byłaby preferowana nad wyrażeniem lambda i jaka jest różnica między nimi. Rozumiem, że lambdy są anonymousfunkcjami, podczas gdy funkcje lokalne nie są, ale …
На этот вопрос есть ответы на Stack Overflow на русском : Можно ли использовать C # 7.0 z VS старее 2017? Visual Studio 2017 (15.x) obsługuje język C # 7, ale co z Visual Studio 2015 (14.x)? Jak mogę z nim używać C # 7?
Zdekompilowałem niektóre biblioteki C # 7 i zobaczyłem ValueTupleużywane typy generyczne. Czym są ValueTuplesi dlaczego nie Tuple? https://docs.microsoft.com/en-gb/dotnet/api/system.tuple https://docs.microsoft.com/en-gb/dotnet/api/system.valuetuple
Wiem, że może to brzmieć dziwnie, ale nie wiem nawet, jak przeszukać tę składnię w Internecie, a także nie jestem pewien, co dokładnie oznacza. Więc obejrzałem trochę kodu MoreLINQ, a potem zauważyłem tę metodę public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer) { if (source == …
Zainstalowałem Visual Studio 2017 Community, które zostało wydane tydzień temu i zacząłem odkrywać nowe funkcje C # 7. Stworzyłem więc prostą metodę, która zwraca dwie wartości: public class Program { public static void Main(string[] args) { (int sum, int count) a = ReturnTwoValues(); } static (int sum, int count) ReturnTwoValues() …
Nowa funkcja w C # 6.0 pozwala zadeklarować zmienną wewnątrz metody TryParse. Mam kod: string s = "Hello"; if (int.TryParse(s, out var result)) { } Ale otrzymuję błędy kompilacji: Co robię źle? PS: w ustawieniach projektu są ustawione C # 6.0 i .NET Framework 4.6.
Wiem, że można zdefiniować aliasy w C # za pomocą słowa kluczowego using . na przykład using ResponseKey = System.ValueTuple<System.Guid, string, string>; Czy jest jednak możliwe zdefiniowanie jednego przy użyciu nowej składni dla krotek wartości? using ResponseKey = (Guid venueId, string contentId, string answer); Wydaje się, że ta składnia nie …
Biorąc pod uwagę następujący kod: string someString = null; switch (someString) { case string s: Console.WriteLine("string s"); break; case var o: Console.WriteLine("var o"); break; default: Console.WriteLine("default"); break; } Dlaczego instrukcja switch jest zgodna case var o? Rozumiem, że case string snie pasuje, kiedy, s == nullponieważ (skutecznie) (null as string) …
Czytałem o nowych funkcjach zmiennych wyjściowych w C # 7 tutaj . Mam dwa pytania: To mówi Zezwalamy również na „discards” jako parametry out, w postaci a _, aby pozwolić Ci zignorować parametry, które Cię nie interesują: p.GetCoordinates(out var x, out _); // I only care about x P: Wydaje …
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.