C# 프로그래밍을 하다 보면 여러 변수에 같은 값을 한 번에 초기화해야 하는 경우가 자주 발생합니다. 이럴 때 각 변수마다 별도의 할당문을 작성할 필요 없이, = 연산자를 체인 형태로 연결하면 단 하나의 문장으로 처리할 수 있습니다.
기본 문법
여러 변수에 동일한 값을 한 줄로 할당하려면 다음과 같이 = 연산자를 사용합니다.
val1 = val2 = 20;
위 문장은 오른쪽에서 왼쪽 방향으로 평가되며, 값 20이 먼저 val2에 할당된 후 그 결과가 val1에 전달됩니다. 따라서 두 변수 모두 최종적으로 20이라는 값을 갖게 됩니다.
전체 예제 코드
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class MyApplication {
static void Main(string[] args) {
int val1, val2;
val1 = val2 = 20;
Console.WriteLine("Value1 = " + val1);
Console.WriteLine("Value2 = " + val2);
}
}
}실행 결과
Value1 = 20 Value2 = 20
동작 원리 이해하기
이 기법이 가능한 이유는 C#에서 대입 연산자(=)는 값을 할당한 후 그 할당된 값을 반환하기 때문입니다. 즉, val2 = 20 표현식 자체가 20으로 평가되고, 이 결과가 다시 val1에 할당되는 구조입니다.
주의 사항
- 변수는 반드시 선언된 후에 사용해야 합니다. 위 예제에서는
int val1, val2;로 미리 선언했습니다. - 선언과 동시에 초기화하는 것도 가능합니다:
int val1, val2 = val1 = 20;(단, 가독성을 위해 별도 선언 후 할당하는 방식이 권장됩니다.) - 세 개 이상의 변수에도 동일하게 적용할 수 있습니다:
a = b = c = 10;
이처럼 체인 할당(Chained Assignment)을 활용하면 코드를 더 간결하게 작성할 수 있으며, 특히 여러 변수를 같은 초깃값으로 초기화할 때 유용합니다.