저는 Visual Studio 특유의 것을 발견했습니다. 첫째, 어딘가 기능이 (C#)를 입력 해보십시오 :Visual Studio null 참조 경고 - 왜 오류가 없습니까?
class Foo
{
public void Bar()
{
string s;
int i = s.Length;
}
}
을 이제 바로는 "Use of unassigned local variable 's'
"을 말하는 오류로 s.Length
에서 s
을 표시합니다.
class Foo
{
private string s;
public void Bar()
{
int i = s.Length;
}
}
그것은 컴파일하고, "Field 'Foo.s' is never assigned to, and will always have its default value null
"을 말하고, 경고와 함께 private string s
에서 s
을 강조 : 다른 한편으로,이 코드를 사용해보십시오.
이제 VS가 똑똑하고 s가 항상 null임을 알면 두 번째 예제에서 길이를 얻는 것이 오류가 아닌 이유는 무엇입니까? 원래 컴파일러가 작업을 완료 할 수 없으면 컴파일 오류 만 발생합니다. Bar()를 호출하지 않는 한 코드가 기술적으로 실행되기 때문에 이는 경고 일뿐입니다. " 단, 첫 번째 예에서는 설명이 무효화됩니다. Bar()를 호출하지 않는 한 오류없이 코드를 실행할 수 있습니다. 그래서 무엇을 제공합니까? 그냥 감시하거나 뭔가 놓친 거니?
의, 그것은 인스턴스 글로벌되어 있지 않으며 테스트 이유로는 NullReferenceException을 유발하는 테스트 프로그램이 될 수 -들. –