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

Для питань, пов’язаних із розробкою з мовою C # 8.0. Ця версія додає типові посилальні типи, що обнуляються, методи інтерфейсу за замовчуванням, асинхронні перелічувані дані та інші функції та вдосконалення

1
Чому новий індекс-оператор капелюха з функції нарізки масивів C № 8 не починається з 0?
C # 8.0 пропонує зручний спосіб нарізати масиви - див. Офіційний допис для C # 8.0 . Синтаксис доступу до останнього елемента масиву є int value[] = { 10, 11, 12, 13 }; int a = value[^1]; // 13 int b = value[^2]; // 12 Мені цікаво, чому індексація доступу …
156 c#  arrays  indexing  c#-8.0 


6
Як увімкнути функцію Nullable Reference Types у C # 8.0 для всього проекту
Згідно з відеороликом оголошень C # 8, функцію "типові посилальні типи", які можна опустити, можна включити для всього проекту. Але як включити його для проекту? Я не знайшов жодної нової відповідної опції у вікні Властивості проекту у Visual Studio 2019 Preview 1. Чи можна його включити для «застарілих» .csprojпроектів, якщо …


3
Що означає "є {}"?
Я інколи бачу такий код, і поняття не маю, що вираз насправді тестує. public static void Something(string[] value) { if (value is { }) { DoSomethingElse(); } }
36 c#  c#-8.0 

2
Створіть порожній IAsyncEnumerable
У мене є інтерфейс, який написаний так: public interface IItemRetriever { public IAsyncEnumerable<string> GetItemsAsync(); } Я хочу написати порожню реалізацію, яка не повертає жоден елемент, як-от так: public class EmptyItemRetriever : IItemRetriever { public IAsyncEnumerable<string> GetItemsAsync() { // What do I put here if nothing is to be done? } …

1
Чому я можу оголосити дочірню змінну з тим самим іменем, що і змінну в батьківській області?
Нещодавно я написав код, коли ненавмисно повторно використав ім'я змінної як параметр дії, оголошеної в межах функції, яка вже має однойменну змінну. Наприклад: var x = 1; Action<int> myAction = (x) => { Console.WriteLine(x); }; Коли я помітив дублювання, я був здивований, побачивши, що код складено та працює бездоганно, що …

1
Яка різниця між використанням та очікуванням використання? І як я можу вирішити, який з них використовувати?
Я помітив, що в деяких випадках Visual Studio рекомендує це зробити await using var disposable = new Disposable(); // Do something замість цього using var disposable = new Disposable(); // Do something У чому різниця між usingі await using? Як я повинен вирішити, який саме використовувати?
21 c#  c#-8.0 

3
Найкраща практика використання Nullable Reference Types для DTO
У мене є DTO, який заповнюється читанням з таблиці DynamoDB. Скажіть, це виглядає приблизно так: 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 database …

1
Перетворити IAsyncEnumerable у список
Так у C # 8 ми отримали додавання IAsyncEnumerableінтерфейсу. Якщо у нас є звичайний, IEnumerableми можемо зробити з нього Listабо майже будь-яку іншу колекцію, яку ми хочемо з неї. Завдяки Linq там. var range = Enumerable.Range(0, 100); var list = range.ToList(); Ну а тепер я хочу перетворити своє IAsyncEnumerableна а, …

1
Що таке невідома нульовість у C # 8?
У C # 8.0 ми можемо мати зведені типи посилань. Документи стверджують, що існує 4 види зведення нанівець. Перші 3 цілком зрозумілі, але я не розумію точки "невідомого". Документи кажуть, що він використовується з дженериками, але коли я намагаюся викликати метод на необмежену змінну типу Т у генеріках, він просто …

4
Асинхронно десеріалізує список за допомогою System.Text.Json
Скажемо, що я запитую великий файл json, який містить список багатьох об'єктів. Я не хочу, щоб вони запам'ятовувались відразу, але я б швидше читав і обробляв їх по черзі. Тому мені потрібно перетворити System.IO.Streamпотік асинхронізації в IAsyncEnumerable<T>. Як використовувати новий System.Text.JsonAPI для цього? private async IAsyncEnumerable<T> GetList<T>(Uri url, CancellationToken cancellationToken …

5
Чи може нульовий посилальний тип у C # 8 бути недійсним під час виконання?
Мені здається, насправді немає гарантії того, що незмінна змінна ніколи не матиме нульового значення. Уявіть, що у мене клас, який має одну властивість, яку не можна звести нанівець: public class Foo { public Foo(string test) { Test = test; } public string Test {get;set;} } Тепер це може здатися, що …

3
Чи існує остаточна умова іменування методів повернення IAsyncEnumerable?
Після того, як C # 5 представила asyncта awaitмодель для асинхронного програмування, спільнота C # придумала конвенцію про іменування, щоб додати суфікс "Async" до методів повернення очікуваного типу, як-от: interface Foo { Task BarAsync(); } Багато аналізаторів статичного коду (як на основі Росліна, так і не на основі Росліна) були …
10 c#  c#-8.0 

1
Інформація про нульовий тип опорного типу, не виявлена ​​в FirstOrDefault
Мені хотілося перевірити нову функцію змінних посилальних типів у C # 8.0. Я запустив новий проект, орієнтований на .NET Core 3.0, включив нульові типи посилань у .csprojфайл та почав кодувати. Я створив простий список, який приймає a string[]і повертає stringв той масив, що дорівнює abc. Тепер, оскільки я не впевнений, …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.