Описание тега c#-12.0
0
ответов
Почему псевдонимы типов в C# нельзя использовать в другом псевдониме?
После C# 12 (.NET 8) все типы могут иметь псевдонимы: using A = int; using B = string; using C = Dictionary<int, string>; Однако это нельзя записать как using A = int; using B = string; using C = Dictionary<A, B>; Это ошибка или просто о…
18 ноя '23 в 20:42
0
ответов
Обновить CredentialCache во время выполнения
Я использую DI для приложения, которое используетCredentialCacheпоскольку это хост Linux, которому необходимо пройти аутентификацию в Windows API. Я устанавливаю учетные данные, как показано ниже, и это отлично работает. Моя проблема заключается в т…
25 ноя '23 в 19:42
0
ответов
VS22 не знает функций C# 12
Если я использую функции C# 12 в Visual Studio 22, в коде это помечается как ошибка, но в списке ошибок ошибка не отображается (см. снимок экрана). Я использую VS22 17.8.2, установил .NET 8
30 ноя '23 в 07:53
0
ответов
Атрибут резервного свойства в первичном конструкторе класса
Как добавить атрибут в свойство поддержки, созданное компилятором, для параметра в первичном конструкторе класса C# 12? Я пытался: class C([field: JsonIgnore] int X) { int F() => X +1; } Но я получаю предупреждение предупреждение CS0657: «поле» н…
11 сен '23 в 21:32
0
ответов
Некоторая практика C# 11 и 12 не удалась
Я практикую новые функции C# 11 и 12, поэтому написал такой интерфейс и класс: public interface IHello<T> where T: class { static abstract IHello<T> operator +(IHello<T> left, IHello<T> right); public string Value { get; } } …
12 окт '23 в 11:51
0
ответов
Как написать конструктор C# с внутренним параметром исключения
Я пытаюсь создать собственный класс исключений в С# 12.0 (.NET 8.0, версия SDK: 8.0.100-rc.2.23502.2), который поддерживает конструктор с внутренним параметром исключения . Вот код, который я изначально пробовал: public class TokenAcquisitionExcepti…
18 окт '23 в 02:17
1
ответ
Назначение перехватчиков C# 12
В C# 12 появятся перехватчики, которые позволят вам перехватывать вызов метода, но какой в этом смысл? Почему бы мне просто не вызвать другой метод? И зачем мне вообще его использовать — синтаксис кажется неудобным для разработчиков? Спасибо
22 окт '23 в 07:07
1
ответ
Разница между параметрами in и ref только для чтения
В чем разница между параметрами и (С# 12)? Я нашел обаinиref readonlyпараметры делают параметр доступным только для чтения и не могут быть изменены в вызываемом методе. Есть ли у них аналогичная функция?
18 ноя '23 в 22:53
0
ответов
C# Как лучше всего РАЗРЕШИТЬ предупреждение о компиляции "CS8618"
Если мы объявим свойство следующим образом: public class Cat { public string Name { get; set; } } мы получаем предупреждение: CS8618 — переменная, допускающая значение NULL, должна содержать значение, отличное от NULL, при выходе из конструктора. Ра…
21 ноя '23 в 01:34
0
ответов
С# 12, первичные конструкторы
В новой версии C# (v.12) есть первичные конструкторы, поэтому мы можем написать: public interface IService { Distance GetDistance(); } public class ExampleController(IService service) : ControllerBase { private readonly IService _service = service; …
20 ноя '23 в 00:25
0
ответов
Проверка нуля с помощью основного конструктора в C# 12
Я использую C# 12. В C# 12 я могу использовать основной конструктор: public class UserService(IUnitOfWork uow) : IUserService { } До C# 12 я использовал проверку нуля для элементов, которые я добавлял в конструктор: public class UserService : IUserS…
27 ноя '23 в 11:13
1
ответ
Почему основные конструкторы C# 12 выполняются в противоположном порядке?
Почему основные конструкторы в C# 12 выполняются в противоположном порядке? Это своего рода переломное изменение , если не сказать больше... Пример: namespace Whatever; [TestClass] public class UnitTestTemp { [TestMethod] public void TestMethod1() /…
02 дек '23 в 10:32
1
ответ
Resharper допускает ошибку в функции выражений коллекций в C# 12
Хорошей особенностью C# 12 являются выражения коллекций . Resharper допускает ошибку в этом синтаксисе public List<Model> ListModels { get; set; } = []; // ERROR Я использовал следующую опцию в Visual Studio 2022, чтобы включить C# 12 в проект…
25 ноя '23 в 19:53
1
ответ
Каков синтаксис использования выражений коллекции C#12 для инициализации List<List>>?
Скажем, у меня есть такой код (или любая неровная структура): var intListList = new List<List<int>> { new() { 1, 2, 3 } }; Я хотел бы использовать здесь выражение коллекции. Resharper (EAP) предлагает следующее: var intListList = new Lis…
17 ноя '23 в 14:01
1
ответ
Новый синтаксис инициализатора массива в C# 12 не компилируется в VS 2022 17.8
В настоящее время использую Visual Studio 2022 17.8 для работы с изменениями .NET 8 и C# 12. Я получаю подсказки по проверке IDE0300 для таких объявлений полей, предлагающие вместо этого преобразовать их в выражение коллекции, например: private read…
19 ноя '23 в 23:56
0
ответов
Что такое выражение коллекции при создании экземпляра List<T>
Я не понимаю, что Intellisense предлагает в качестве замены существующего кода (на фото здесь). В случае, если изображение будет удалено позже, предложение Intellisense, изображенное на рисунке, предлагает заменить List<int> x = new List<in…
15 ноя '23 в 06:20
0
ответов
Как «правильно» (идиоматически) избегать CS9107 при передаче параметров первичного конструктора в базу
В C# 12 мы получаем первичные конструкторы для обычных классов. Рассмотрим следующий код: new Derived("XXX").Test(); public class Base(string name) { protected void Log() => Console.WriteLine("Base: " + name); } public class Derived(string name) …
16 окт '23 в 13:36