Sobes.tech
Middle+

Quais são as vantagens da versão C# 12?

sobes.tech IA

Resposta da IA

  • Expressões lambda únicas (Construtores primários)
  • A expressão typeof para obter o tipo de array inline
  • Interceptadores (Interceptors) - uma funcionalidade experimental, para interceptar chamadas de métodos e substituí-las na fase de compilação.
// Construtores primários em C# 12
public class MyClass(int param1, string param2)
{
    // Os parâmetros do construtor estão disponíveis no corpo da classe
    public int Property1 { get; } = param1;
    public string Property2 { get; } = param2;
}

// Uso
var instance = new MyClass(10, "hello");
// typeof para arrays inline em C# 12
[System.Runtime.CompilerServices.InlineArray(10)]
public struct MyInlineArray<T>
{
    private T _element0; // O nome não importa
}

// typeof(MyInlineArray<int>) retornará System.Runtime.CompilerServices.InlineArray<int>
// typeof(MyInlineArray<int>[0]) retornará System.Int32
Console.WriteLine(typeof(MyInlineArray<int>));
Console.WriteLine(typeof(MyInlineArray<int>[0]));