2010-11-22 16 views

답변

15

제목과 태그는 "int"에 대해 물어 보지만 질문에 "십진수"로 오류가 있음을 알립니다. 어느 쪽이든 value type (예 : Integer, Decimal 등)은 "비어있는"것과 같은 것이 없습니다. 가능하면 으로 설정할 수 없습니다 (예 : String 또는 클래스). reference type으로 설정할 수 없습니다. 대신 값 유형에는 해당 유형의 변수를 기본값으로 자동 초기화하는 암시 적 기본 생성자가 있습니다.IntegerDecimal과 같은 숫자 값의 경우 0입니다. 다른 유형의 경우 this table을 참조하십시오.

그래서 당신은 값 유형은 다음 코드로 초기화되어 있는지 확인할 수 있습니다 :

mySecondFavoriteNumber가 자동으로 장면 뒤에 0 (AN Integer의 기본값)으로 초기화하는 것으로
Dim myFavoriteNumber as Integer = 24 
If myFavoriteNumber = 0 Then 
    ''#This code will obviously never run, because the value was set to 24 
End If 

Dim mySecondFavoriteNumber as Integer 
If mySecondFavoriteNumber = 0 Then 
    MessageBox.Show("You haven't specified a second favorite number!") 
End If 

컴파일러이므로 If 문은 True입니다. 사실, mySecondFavoriteNumber의 선언은 위의 다음 문장에 해당합니다 :

Dim mySecondFavoriteNumber as Integer = 0 
물론


당신은 아마 눈치 챘로, 사람의 마음에 드는 번호가 실제로 0인지 여부를 알 수있는 방법이 없습니다, 또는 그들이 아직 즐겨 찾기 번호를 지정하지 않은 경우.

Dim mySecondFavoriteNumber as Nullable(Of Integer) 

그리고가 지정된 경우, 다음과 같이보고 확인 : 당신이 진정으로 Nothing로 설정 될 수있는 값 유형을해야하는 경우 , 당신은 대신 변수를 선언, Nullable(Of T)를 사용할 수

If mySecondFavoriteNumber.HasValue Then 
    ''#A value has been specified, so display it in a message box 
    MessageBox.Show("Your favorite number is: " & mySecondFavoriteNumber.Value) 
Else 
    ''#No value has been specified, so the Value property is empty 
    MessageBox.Show("You haven't specified a second favorite number!") 
End If 
+0

그냥 보조 노트 널 (NULL) 입력 : 실제로 당신이 * * 값 형식에 아무것도를 할당 할 수 없습니다 VB.Net에서. 그러나이 경우 Nothing은 'null'이 아니라 'default (T)'를 의미하므로 정수의 경우 0과 같습니다. – jeroenh

+0

@jeroenh : 맞습니다. 참조 유형으로 할 수있는 것처럼 Nothing으로 설정할 수 없다고 말한 것을 주목하십시오 *. 값 타입을'Nothing'으로 설정하면 디폴트 값으로 초기화됩니다. 요점은 값 유형에 대해 'null'또는 '빈'상태가 없다는 것입니다. 그들은 항상 값을 포함합니다. –

+0

최근에 'Dim mySecondFavoriteNumber as Integer?'는 'Dim mySecondFavoriteNumber as Nullable (Of Integer)'와 동일합니다. –

0

글쎄, 숫자에 대한 기본 값이 0이 될 것이다 구글에 아무런 대답이 없다, 그러나 당신은 또한이 시도 할 수있는 경우

int x = 123; 
String s = "" + x; 

을 다음 길이를 확인하거나 문자열 's'은 비어 있습니다.

2

아마 당신을 위해 무엇을 찾고있는

Dim foo As Nullable(Of Integer) = 1 
    Dim bar As Nullable(Of Decimal) = 2 

    If foo = 1 Then 
     If bar = 2 Then 
      foo = Nothing 
      bar = Nothing 
      If foo Is Nothing AndAlso bar Is Nothing Then Stop 
     End If 
    End If 
관련 문제