C #에서 단일 명령문으로 한 번에 하나의 값을 여러 변수에 할당하는 방법이 있습니까?
이 라인을 따라 뭔가 (의사 코드) :
int num1 = 1;
int num2 = 1;
num1 & num2 = 5;
아마 그렇지는 않지만 비슷한 것이 실제로 가능한 경우 물어볼 가치가 있다고 생각했습니다!
답변
다음과 같이 간단합니다.
num1 = num2 = 5;
변수 대신 객체 속성을 사용하는 get
경우 중간 값 의 접근자가 호출되지 않는다는 것이 흥미 롭습니다 . set
할당 순서에서 액세스 한 모든 속성에 대해 접근 자만 호출됩니다.
예를 들어 콘솔마다 쓰기가있는 클래스 받아 get
및 set
접근 호출됩니다.
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