여기에 VB.NET을 사용하는 사람이 있습니까 (예 : 또는 ) IsNothing
와 반대되는 사용 을 선호하거나 반대 합니까? 그렇다면 왜 그렇습니까?Is Nothing
If IsNothing(anObject)
If anObject Is Nothing...
편집 : 둘 다 똑같이 수용 가능하다고 생각되면 하나를 선택하고 고수하는 것이 가장 좋다고 생각합니까, 아니면 혼합해도 괜찮습니까?
여기에 VB.NET을 사용하는 사람이 있습니까 (예 : 또는 ) IsNothing
와 반대되는 사용 을 선호하거나 반대 합니까? 그렇다면 왜 그렇습니까?Is Nothing
If IsNothing(anObject)
If anObject Is Nothing...
편집 : 둘 다 똑같이 수용 가능하다고 생각되면 하나를 선택하고 고수하는 것이 가장 좋다고 생각합니까, 아니면 혼합해도 괜찮습니까?
답변:
나는 것을 발견 패트릭 스틸은 자신의 블로그에이 질문에 최선을 대답 IsNothing 방지 ()
Patrick Steele이 자신의 게시물에 대한 신용을 얻도록 그의 답변을 여기에 복사하지 않았습니다. 그러나 Is Nothing 또는 IsNothing 중 어느 것을 사용할지 결정하려고한다면 그의 게시물을 읽어야한다고 생각합니다. Is Nothing이 최선의 선택이라는 데 동의 할 것입니다.
편집-VoteCoffe의 의견은 여기에
부분 기사 내용 : 더 많은 코드를 검토 한 후 이것을 피해야하는 또 다른 이유를 발견했습니다. 값 유형을 허용합니다! 분명히 IsNothing ()은 '객체'를 허용하는 함수이므로 원하는 것을 전달할 수 있습니다. 값 형식 인 경우 .NET은 개체에 상자를 만들어 IsNothing에 전달합니다.이 값은 항상 상자 값에 대해 false를 반환합니다! VB.NET 컴파일러는 "Is Nothing"스타일 구문을 검사하고 값 유형에 대해 "Is Nothing"을 시도하면 컴파일되지 않습니다. 그러나 IsNothing () 함수는 불만없이 컴파일됩니다. PSteele – VoteCoffee
IsNothing()
IsNothing () VS Is Nothing 기사의 4 가지 이유 는 다음과 같습니다.
가장 중요한 것은 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
컴파일하지 않고 대신 컴파일러에서 오류가 발생합니다.
'Is'연산자는 'Integer'유형의 피연산자를 허용하지 않습니다.
피연산자는 참조 또는 널 입력 가능 유형이어야합니다.
IsNothing(object)
실제로의 일부입니다 Microsoft.VisualBasic.dll
.
VisualBasic 라이브러리에 대한 불필요한 종속성이 있으므로 바람직하지 않습니다.
느리게-실제로 33.76 % 느리게 (1000000000 반복 이상)!
아마도 개인적인 취향이지만 요다 조건IsNothing()
처럼 읽습니다 . 변수를 볼 때 조사 대상으로 변수의 상태를 확인하고 있습니다.
즉 수행 이 X합니까? --- NOT 인가 x
의 속성 보내고 그것을 ?
그래서 나는 If a IsNot Nothing
더 잘 읽습니다If Not IsNothing(a)
VB는 (영어와 같은 언어를 사용하고 {}를 많이 사용하는 언어에 익숙한 사람들에게 "영어처럼"편안하게 만들려고하는 것과 같은 것들로 가득합니다. 예를 들어 "like english"사이드에서 ... VB에는 " Ai n't "키워드가 있습니다 ... 아니요, 농담이 아닙니다. 그리고 다른 한편으로, 이미 알고있는 것처럼 대부분 원한다면 함수 호출과 함께 ()을 사용할 수 있지만 꼭 할 필요는 없습니다.
나는 IsNothing ()을 선호하지만 ... C와 C #을 사용하므로 편안합니다. 그리고 더 읽기 쉽다고 생각합니다. 그러나 당신에게 더 편안한 느낌으로 가십시오.
나는 "아무것도없는"대안으로 기울어지고있다. 왜냐하면 그것은 더 많은 OO로 보인다.
확실히 비주얼 베이직은 되지 않는다 (가) 키워드 아닌가 얻었다.
또한 Is Nothing 버전을 SQL에서 사용하는 것보다 부분적으로 사용하는 경향이 있습니다.
Is Nothing에는 Nothing 값에 할당 된 개체가 필요합니다. IsNothing ()은 숫자 유형을 포함하여 초기화되지 않은 모든 변수를 사용할 수 있습니다. 예를 들어 선택적 매개 변수가 전달되었는지 테스트 할 때 유용합니다.
Nothing
Is Nothing
IsNothing()