Sobes.tech
Middle+
116
questionbank

Какие преимущества предоставляет версия C# 12?

Ответ от нейросети

sobes.tech AI

  • Единоразовые лямбда-выражения (Primary constructors)
  • Выражение typeof для получения типа inline-массива
  • Перехватчики (Interceptors) - экспериментальная фича, для перехвата вызовов методов и их подстановки на этапе компиляции.
// C# 12 Primary constructors
public class MyClass(int param1, string param2)
{
    // Параметры конструктора доступны в теле класса
    public int Property1 { get; } = param1;
    public string Property2 { get; } = param2;
}

// Использование
var instance = new MyClass(10, "hello");
// C# 12 typeof для inline-массивов
[System.Runtime.CompilerServices.InlineArray(10)]
public struct MyInlineArray<T>
{
    private T _element0; // Название не важно
}

// typeof(MyInlineArray<int>) вернет System.Runtime.CompilerServices.InlineArray<int>
// typeof(MyInlineArray<int>[0]) вернет System.Int32
Console.WriteLine(typeof(MyInlineArray<int>));
Console.WriteLine(typeof(MyInlineArray<int>[0]));