문제

는 누구나 여기서 사용 VB.NET 고 강력한 선호 또는 사용에 대하여 IsNothing 반대로 Is Nothing (예를 들어, If IsNothing(anObject)If anObject Is Nothing...)?그렇다면 이유는 무엇입니까?

편집:당신이 생각하는 경우 그들은 모두 똑같이 허용,당신은 그것의 최고 중 하나를 선택하고,그것으로 스틱 또는 확인은 혼합하는가?

도움이 되었습니까?

해결책

는 경우를 살펴 MSIL 으로 실행되는 당신이 볼 수는 컴파일하지 않을 정확히 동일한 코드입니다.을 사용할 때 IsNothing()그것이 실제로 전화하는 방법을 평가하는 표현이다.

는 이유라고 생각하는 경향이 있음으로 기대를 사용하는"아무것도"때에 내가 부정 그것은"아무것도 없'보다는 오히려"하지 IsNothing(object)"나는 개인적으로 느낌을 더 보이는 읽을 수 있습니다.

다른 팁

내가 찾는 패트릭 스틸 이 질문에 답을 최에 자신의 블로그: 피 IsNothing()

지 않았던 모든 사본을 그의 대답이 여기에 보트 패트릭 스틸의 신용 위해 자신의 게시물입니다.하지만 생각하려는 경우 사용할지 여부를 결정은 아무것도 또는 IsNothing 읽어야 합니다 자신의 게시물입니다.나는 당신을 생각할 것에 동의하는 것은 아무것도 최고의 선택입니다.

편집 VoteCoffe 의 의견기

부분적인 문서 내용:를 검토한 후에 더 많은 코드를 발견 또 다른 이유는 당신이 피해야 한다:지의 값이 유형이 있다!물론,이후 IsNothing()함수는지는'object',전달할 수 있습니다 당신이 원하는 무엇이든니다.의 경우 값을 입력,.그물이 상자으로 그것을 개체고 그것을 전달하 IsNothing 는 항상 false 를 반환에서 박스 가치!이 VB.NET 컴파일러를 확인합"은"아무것도 스타일문지 않을 컴파일하는 경우 시도 할 수 있는"아무것도에"가치 유형입니다.하지만 IsNothing()함수는 컴파일하지 않고 불만입니다.-PSteele–VoteCoffee

당신은 절대적으로 사용을 피 IsNothing()

여기에는 4 가지 이유 에서 문서 IsNothing()VS 아무것도

  1. 가장 중요한 것은, IsNothing(object) 는 모든 것을 전달된 객체로도 값의 형태!이 값은 유형할 수 없 Nothing, 에,그것은 완전히 낭비를 확인합니다.
    다음 예제:

    Dim i As Integer
    If IsNothing(i) Then
       ' Do something 
    End If
    

    이 컴파일하고 잘 실행하는 반면,이:

    Dim i As Integer
    If i Is Nothing Then
        '   Do something 
    End If
    

    컴파일되지 않는 대신,컴파일러는 것입니다 올리는 오류:

    '은'운영을 허용하지 않는 피연산자 형식의'정수'.
    피연산자이어야 합 참조 또는 널 형식입니다.

  2. IsNothing(object) 실제로 부분 부분의 Microsoft.VisualBasic.dll.
    이것은 바람직하지 않은 경우 불필요한 의존성에 visual basic 라이브러리입니다.

  3. 그리-33.76%느린 사실에서(통해 1,000,000,000 에 반복)!

  4. 아마도 개인의 취향하지만, IsNothing() 처럼 읽 Yoda 조건.당신이 볼 때는 변수는 당신이 그것을 검사하의 국가,그것의 대상으로 합니다.

    즉가 하 x?--- xing 의 속성 ?

    그래서 저는 생각 If a IsNot Nothing 보다 더 읽 If Not IsNothing(a)

동의함으로는"아무것도".위에 명시된 바와 같이 그것을 쉽게 부정과 함께"아무것도 없".

이 쉽게 읽을 수...

If printDialog IsNot Nothing Then
    'blah
End If

이보다...

If Not obj Is Nothing Then
    'blah
End If

VB 의 전체 같은 것들을 만들려고 그것은 모두 같은"영어"고 편안한 사람들을 위해 사용하는 언어를 사용하고(){}이 많습니다.예를 들어,"영어"다.VB 은""키워드...그리고,내가 농담하고 있지 않다.다른 측면에서,당신은 아마 이미 알고있는 대부분의 시간을 사용할 수 있습()함수를 호출하려는 경우이지만,필요가 없습니다.

내가 선호하는 IsNothing()...하지만 내가 사용하는 C,C#,그래서 그냥 무엇을 편안합니다.고 나는 생각은 그것의 더 읽을 수 있습니다.그러나 어떤 느낌이 더 편안하게하는 당신.

나어로다""아무것도 대안을 주로하기 때문에,그것은 더 많은 것 OO.

반드시 Visual Basic 어지 않는 키워드를 사용합니다.

또한 사용하는 경향이 있는 것은 아무것도 버전에서 부분적으로 그것을 사용하여 내가 할만큼에서 SQL.

내가 처음 사용 IsNothing 그러나 나는 방향으로 움직이 사용하는 것은 아무것도에서 새로운 프로젝트는 주로 가독성을 높입니다.만 시간이 나는 IsNothing 은 경우 난을 유지하는 코드는 전반에 걸쳐 사용하고 싶을 편 일치한다.

은 아무것도 필요가 있는 객체에 지정되었는 값이 아무것도 아니다.IsNothing()할 수 있고 어떤 변수 초기화되지 않 등의 숫자 형식입니다.이것은 예를 들어 유용한 시험할 때는 경우에는 선택 매개 변수를 전달 되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top