[C#] C # : 단일 명령문에서 동일한 값을 여러 변수에 지정

C #에서 단일 명령문으로 한 번에 하나의 값을 여러 변수에 할당하는 방법이 있습니까?

이 라인을 따라 뭔가 (의사 코드) :

int num1 = 1;
int num2 = 1;

num1 & num2 = 5;

아마 그렇지는 않지만 비슷한 것이 실제로 가능한 경우 물어볼 가치가 있다고 생각했습니다!



답변

다음과 같이 간단합니다.

num1 = num2 = 5;

변수 대신 객체 속성을 사용하는 get경우 중간 값 의 접근자가 호출되지 않는다는 것이 흥미 롭습니다 . set할당 순서에서 액세스 한 모든 속성에 대해 접근 자만 호출됩니다.

예를 들어 콘솔마다 쓰기가있는 클래스 받아 getset접근 호출됩니다.

static void Main(string[] args)
{
    var accessorSource = new AccessorTest(5);
    var accessor1 = new AccessorTest();
    var accessor2 = new AccessorTest();

    accessor1.Value = accessor2.Value = accessorSource.Value;

    Console.ReadLine();
}

public class AccessorTest
{
    public AccessorTest(int value = default(int))
    {
        _Value = value;
    }

    private int _Value;

    public int Value
    {
        get
        {
            Console.WriteLine("AccessorTest.Value.get {0}", _Value);
            return _Value;
        }
        set
        {
            Console.WriteLine("AccessorTest.Value.set {0}", value);
            _Value = value;
        }
    }
}

출력됩니다

AccessorTest.Value.get 5
AccessorTest.Value.set 5
AccessorTest.Value.set 5

컴파일러가 모든 속성에 값을 할당하고 할당 될 때마다 값을 다시 읽지 않음을 의미합니다.


답변

이것은 당신이 원하는 것을 원할 것입니다 :

int num1, num2;
num1 = num2 = 5;

‘num2 = 5’할당은 할당 된 값을 반환합니다.

이렇게하면 num1 = (num2 = 5) +3;읽기가 쉽지 않은 것으로 권장하지는 않지만 num1에 8을 할당하는 것과 같은 미친 일 을 할 수 있습니다.


답변

int num1=5,num2=5

동일한 명령문에서 변수 선언 및 지정


답변

구문이 조금 더 짧지 만 다른 사람들이 이미 말한 것을 취합니다.

int num1, num2 = num1 = 1;


답변

이 시도:

num1 = num2 = 5;

VB에서는 작동하지 않습니다.


답변

num1 = num2 = 5


답변

int num1, num2, num3;

num1 = num2 = num3 = 5;

Console.WriteLine(num1 + "=" + num2 + "=" + num3);    // 5=5=5