Home Full Site
C# 13: 객체 초기화 식에서 ^ 인덱스 연산자 (Implicit index access)

C# 13에서는 객체/컬렉션 초기화(object initializer) 안에서, 뒤에서부터 인덱싱하는 ^ 인덱스 연산자를 사용할 수 있게 되었다. C# 13 이전에는 object initializer 안에서 ^ 연산자를 사용할 수 없었다.

아래 예제에서 ^1은 배열의 마지막 요소를 가리키며, ^2는 뒤에서 두 번째 요소를 가리킨다.


예제

public class Program
{
    public static void Main()
    {
        var countdown = new TimerRemaining
        {
            Buffer =
            {
                [^1]  = 0, // 마지막 요소
                [^2]  = 1,
                [^3]  = 2,
                [^4]  = 3,
                [^5]  = 4,
                [^6]  = 5,
                [^7]  = 6,
                [^8]  = 7,
                [^9]  = 8,
                [^10] = 9   // 첫번째 요소
            }
        };

        // 출력: 9 8 7 6 5 4 3 2 1 0
        foreach (var item in countdown.Buffer)
        {
            Console.Write($"{item} ");
        }
    }

}
public class TimerRemaining
{
    public int[] Buffer { get; set; } = new int[10];
}



© csharpstudy.com