다음 두
답변
로컬 변수의 경우 절대적으로 - 첫 번째는 명확하게 할당되지 않고 두 번째는 할당됩니다. 예를 들어 A
가 참조 형식 인 경우 필드의
void DoesntCompile()
{
A a;
string x = a.ToString(); // Can't use a - it's not definitely assigned
}
void CompilesButGoesBang()
{
A a = null;
string x = a.ToString(); // Throws a NullReferenceException
}
(static 또는 인스턴스), 아마 차이를 만들지 않는다. 나는 수있는 프로그램을 작성하는 경우에는 정적 변수의 차이를 보여 주지만, 정적 유형 이니셜 라이저를 사용하여 두 번 반사 ... 역겨운 것입니다.
당신이 묻는 이유에 대해 더 많은 맥락을 줄 수 있다면, 정말 도움이 될 것입니다.
왜 C# 참조 유형을 선언 할 때 기본 null이 없습니다. 값 유형을 선언하면 기본 값을 가져야한다고 생각합니다. 맞습니까? – user496949
@ user496949 : 아니오, 지역 변수가 아닙니다. mutable 구조체로 할 수있는 이상한 일들이 있습니다. 먼저 "empty"변수에 필드를 할당하지만,'int'와 같은 것을 사용하면 문자열 변수와 마찬가지로 지역 변수와 똑같은 동작을 볼 수 있습니다. –
@ user496949를 * 변수로 사용하는 경우 : no : 값 유형에도 초기 값이 없습니다. (할당되지 않은 구조체의 모든 필드를 * 할당하는 경우가 있지만 어쨌든 지저분하고 가변성을 요구합니다.). 더 간단한 대답은 "변수는 초기 값이 없습니다. 필드는 유형의 기본값을 가져옵니다" –
C#에서 변수는 here에 나열된 규칙에 따라 기본값입니다.
두 가지 주요 차이점은 사례 2의 경우 변수가 "명확하게 할당 된"것으로 간주 될 수 있다는 것입니다. 변수의 사용 방법에 따라 컴파일러에서 특정 작업을 허용하기 전에 변수를 할당해야합니다. 명확한 과제는 this note을 참조하십시오.
각 유형에 기본값이 있으므로 컴파일러가 할당되지 않은 로컬 변수를 사용하지 못하게하는 이유는 다음과 같습니다. – user496949
참고 자료는 * right *이지만 VS 2003 문서에서 전환 할 때가 있습니다. –
@ user496949 두 답변이 이미 귀하에게 말했습니다. "명확한 할당"- 이것은 스펙에서 (변수에 대해) 요구됩니다. –
- 1. 다음 두 가지 시나리오에
- 2. 두 호출은 다음 코드를 들어
- 3. 다음 두 프로그램의 차이점은 무엇입니까?
- 4. 정규식이있는 시퀀스를 찾은 다음 두 번째 또는 다음 행을 찾으십시오.
- 5. SQL Server는 내가 두 테이블에서 다음 열이 두 테이블
- 6. 다음 두 명령문이 의미 상으로 동일합니까?
- 7. 다음 두 문장의 출력이 다른 이유는 무엇입니까?
- 8. 다음 두 코드 블록이 논리적으로 동일합니까?
- 9. numpy 배열의 다음 두 값을 비교하십시오.
- 10. 다음 조건을 사용하여 두 조건 지정 :
- 11. 다음 페이지의 두 게시물로 Wordpressloop 만들기
- 12. 자바 스크립트 - 다음 그림에서 두 줄
- 13. 다음
- 14. 클릭하여 두 개의 목록 요소를 제거한 다음 클래스에 추가하는 방법
- 15. 슈퍼 난 다음 두 코드 조각이 잘 작동 한
- 16. 의 Web.xml - URL 패턴을 두 번 발췌 한 다음 포함
- 17. 지도 함수는 두 개의 값을 다음 파이썬 코드에서
- 18. 다음 두 SQL 문을 하나로 결합 할 수 있습니까?
- 19. 다음 활동에서 두 변수를 사용하고 싶지만 쓰레드가 null이되게하십시오
- 20. 두 번째 방법도 실행되도록 다음 코드를 편집 할 수 있습니까?
- 21. MySQL의 테이블 내가 두 테이블을 다음 한과 및
- 22. as3 다음 양식으로 넘어 가기 필드가 두 번째 줄부터 시작됩니다.
- 23. 다음 두 가지 방법으로 포인터 개체를 할당하는 것의 차이점은 무엇입니까?
- 24. 아이폰 +, 우리는 두 플랫폼 다음 얻을 프레임 워크
- 25. 서버에 두 개의 이미지를 병합 한 다음 저장하십시오.
- 26. 사용자 카테고리에 따라 login.jsp 다음 두 페이지로 리디렉션
- 27. UIButton에 대한 두 가지 동작 방법. 다음 트랙과 앞으로 추구 :
- 28. 파일을 업로드 한 다음 두 개의 다른 디렉토리에 복사 하시겠습니까?
- 29. 다음
- 30. 다음
http://stackoverflow.com/questions/589920/default-value-of-a-variable-at-the-time-of-declaration-in-c-and-vb – alexandrul