Запитання з тегом «c#-7.0»

Версія C #, випущена в 2017 році, яка додає корисні набори, локальні функції, відповідність основним шаблоном, посилання на місцеві та повернення, основну асинхронізацію та різні інші нові функції. У більшості випадків слід також вказати тег c #.

10
Заздалегідь визначений тип "System.ValueTuple´2" не визначений та імпортований
Я встановив Visual Studio 15 Preview 3 і спробував використати нову функцію кортежу static void Main(string[] args) { var x = DoSomething(); Console.WriteLine(x.x); } static (int x, int y) DoSomething() { return (1, 2); } Коли я компілюю, я отримую помилку: Заздалегідь визначений тип "System.ValueTuple´2" не визначений та імпортований Відповідно …

2
Яка різниця між "x is null" та "x == null"?
В C # 7 ми можемо використовувати if (x is null) return; замість if (x == null) return; Чи є якісь переваги щодо використання нового способу (колишнього прикладу) над старим? Чи відрізняється семантика? Це лише питання смаку? Якщо ні, коли я повинен використовувати один над іншим? Довідка: Що нового в …

4
Локальна функція проти Lambda C # 7.0
Я дивлюся на нові реалізації в C # 7.0, і мені здається цікавим, що вони реалізували локальні функції, але я не можу уявити сценарій, коли локальна функція буде віддана перевагу лямбда-виразу, і яка різниця між ними. Я розумію, що лямбда - це anonymousфункції, тим часом локальні функції не є, але …
178 c#  function  lambda  c#-7.0 


6
У чому різниця між System.ValueTuple і System.Tuple?
Я декомпілював деякі бібліотеки C # 7 і побачив, ValueTupleяк використовуються дженерики. Що таке, ValueTuplesа чому не Tupleзамість цього? https://docs.microsoft.com/en-gb/dotnet/api/system.tuple https://docs.microsoft.com/en-gb/dotnet/api/system.valuetuple
139 c#  .net  tuples  c#-7.0 

2
Непарний синтаксис повернення
Я знаю, що це може здатися дивним, але я не знаю навіть, як шукати цей синтаксис в Інтернеті, а також не знаю, що саме означає. Тому я переглянув якийсь код MoreLINQ, а потім помітив цей метод public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer) { if …
106 c#  .net  c#-7.0 

4
Неможливо повернути Tuple із методу за допомогою Visual Studio 2017 та C # 7.0
Я встановив Visual Studio 2017 Community, яка вийшла тиждень тому, і я почав вивчати нові функції C # 7. Тому я створив простий метод, який повертає два значення: public class Program { public static void Main(string[] args) { (int sum, int count) a = ReturnTwoValues(); } static (int sum, int …

3
TryParse без параметра var
Нова функція в C # 6.0 дозволяє оголосити змінну всередині методу TryParse. У мене є код: string s = "Hello"; if (int.TryParse(s, out var result)) { } Але я отримую помилки компіляції: Що я роблю неправильно? PS: у налаштуваннях проекту встановлені C # 6.0 та .NET Framework 4.6.
93 c#  c#-6.0  c#-7.0 

2
У C # ви можете визначити псевдонім значення кортежу з іменами?
Я знаю, що можна визначити псевдоніми в C # за допомогою ключового слова using . напр using ResponseKey = System.ValueTuple<System.Guid, string, string>; Однак чи можна визначити такий, використовуючи новий синтаксис для кортежів значень? using ResponseKey = (Guid venueId, string contentId, string answer); Здається, цей синтаксис не працює. Чи слід?
92 c#  c#-7.0 

3
перемикач із дивною поведінкою var / null
Враховуючи такий код: 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; } Чому оператор switch відповідає case var o? На моє розуміння, case string sце не збігається, коли s == null(ефективно) (null as string) != nullоцінює …

6
C # 7: Підкреслення (_) та зірочка (*) у змінній Out
Я читав про нові функції змінних в C # 7 тут . У мене є два запитання: Він говорить Ми також дозволяємо "відкидати" як вихідні параметри у формі a _, щоб дозволити вам ігнорувати параметри, які вас не хвилюють: p.GetCoordinates(out var x, out _); // I only care about x …
79 c#  c#-7.0 

9
Коли використовувати: Кортеж проти класу в C # 7.0
До Кортежів я створював клас та його змінні, потім створював об’єкт із цього класу та робив цей об’єкт типом повернення для деяких функцій. Тепер, з кортежами, я можу зробити те ж саме, і в C # 7.0 ми можемо привласнити зрозумілі імена властивостей кортежу (до цього він був item1, item2і …
79 c#  tuples  c#-7.0  valuetuple 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.