2016-09-22 5 views
0

Start() 메소드는 Start() 메소드를 내부적으로 다른 메소드로 복제 할 수있는 방법을 찾고 있습니다. Time.time으로 설정하십시오.) 메서드 내에서 생성 된 정수와 다른 변수의 값으로 설정된 정수가 동일하게 유지됩니까? 예를 들어 여기 내 코드는 다음과 같습니다.const 변수가 변경됩니까?

const int originalAmount = data.amount; 

이상, data.amount는 낮추거나 높입니다. 원래의 금액은 처음 설정되었을 때와 같거나 새로운 data.amount 값과 동일 할 것인가? 그리고 새 값과 같으면 정의 할 때 다른 변수와 동일한 변수를 정의 할 수있는 또 다른 방법이 있습니까? 어떤 도움을 주셔서 감사합니다. 조금만 이해하면됩니다.

EDIT : 또한이 int는 for 루프 내에서 정의되며 originalAmount는 각 루프의 현재 data.amount로 업데이트해야합니다. 맞습니까?

+0

당신은 이것이 루프 안에서 사용된다고 언급하고 있습니다. 전체 코드 목록을 제공해 주시면이 의미가 무엇인지 정확히 알 수 있습니까? –

+2

const에 non-const를 할당 할 수 없으므로 코드에 오류가 발생합니다. (나는'data.amount'가 const가 아니라고 가정합니다.) –

답변

3

상수 변수와 관련된 규칙은 거의 없습니다.

  1. 상수 변수는 선언시 초기화되어야합니다.
  2. 상수 변수의 값을 변경할 수 없습니다.

그러나 선언시 상수 값에 대해 잘 모르겠다면 readonly를 사용할 수 있습니다.

  1. Readonly 변수에는 값을 한 번만 할당 할 수 있습니다.
  2. 할당 된 값은 변경할 수 없습니다.

으로 일정한 변수는 선언에서 초기화되어야하며 일정한 변수가 컴파일시에 초기화되기 때문에 당신은 변수를 초기화 할 수 없습니다. 따라서 for 루프 안에 상수 변수를 작성할 수는 있지만 컴파일 타임에만 값이 할당됩니다.

+0

이것은 많은 의미를 갖습니다, 고마워요! – ZachHofmeister

+0

도와 드리겠습니다 :) –

+0

'const type'을 사용하여 IL 게시물을 확인하면 컴파일 타임에 값으로 대체되는 것을 볼 수 있습니다. 실행 시간 값을 처리/변경하기 위해 코드에 변수가 남아 있지 않습니다. –

관련 문제