2017-10-31 23 views
1

vb.net에서 작업 중이며 할당되지 않은 참조 변수에 대해 위의 경고가 표시됩니다. 변수에 Nothing을 지정하면 경고가 사라집니다. 이제 내 질문은 어떤 차이가 할당을하지 않습니다 아무 것도 값을 참조 변수로 만드는가 ?? Nothing을 명시 적으로 지정하지 않더라도 기본값은 Nothing 나만 맞습니까? 틀 렸으면 고쳐줘.경고 : 변수에 값이 할당되기 전에 변수가 참조로 전달됩니다. 런타임시 Null 참조 예외가 발생할 수 있습니다.

추신 : 이것은 "변수에 값이 할당되지 않은 경우 해당 데이터 형식의 기본값을 보유합니다. 참조 데이터 형식의 경우 기본값은 Nothing입니다." 여기에 완전한 링크가 있습니다 : https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc42030

+0

이는 값을 할당 했으므로 컴파일러가 값을 할당했는지 여부를 확인하여 경고를 생성하지 않습니다. 잘 했어. 당신은 경고를 없애고 당신이 들어오는 것을 막기 위해 시도했던 문제를 예방하기 위해 아무 것도하지 않았습니다. 잘 됐네요. – TZHX

+0

예제 코드를 보여주지는 않지만 함수가 호출자에게 다시 전달해야하는 해당 매개 변수에 대한 할당을 수행 할 경우에만 ByRef로 함수 매개 변수를 정의하면 * 완료 *되어야한다고 지적해야합니다. 초보 프로그래머들은 변수가 객체에 대한 참조이므로 ByRef 여야한다고 생각합니다. 그건 틀렸어요. – dwilliss

답변

2

경고이며 오류가 아닙니다. 코드에 특별히 잘못된 것은 없으므로 오류가 아닙니다. ByRef 매개 변수는 데이터를 메소드 안팎으로 전달하는 데 사용됩니다. 따라서 변수를 인수로 전달하기 전에 값을 지정하지 않은 경우 매개 변수에 값이 있다고 가정하면 NullReferenceException이 발생합니다. 변수를 명시 적으로 Nothing으로 설정하면 컴파일러에서 변수를 Nothing으로 지정하고 다른 값을 지정하는 것을 잊어 버린 것이 아니라는 사실을 알려줍니다.