다음 코드를 실행할 수없는 이유는 무엇입니까? 조건을 확인하고 값을 반환 할 필요없이 따라하는 방법을 실행하는 운영자 : "?"삼진 "? : operator"에 C#의 버그가 있습니까?
static int num = 0;
static void Main(string[] args)
{
(num == 0) ? inc() : dec();
}
public static void inc()
{
num++;
}
public static void dec()
{
num--;
}
이유는 C#을 나를 원을 사용하는 것을 허용하지 않습니다? 동등하게 여기에 :
if (num == 0) inc();
else dec();
나는 같은 규칙이 다른 언어에 적용되는 경우 확실하지 않다 예를 들어, 자바, C++, 등등 ... 삼항 연산자는 부울 표현식을 기준으로 값을 할당
@imad : 지금 당장은 대답 할 시간이 없지만 C# 4 언어 사양을 읽고 거기에서 읽으라고 제안합니다. :) –