2010-02-09 6 views
4

저는 C# 프로그래머이지만 C#의 일부 코드를 VB.NET으로 변환 중입니다. getValue() 그래도 작동하지 않습니다 VB.NET의 DirectCast() 하 고의 Integer?정수는 어떻게 변환합니까? VB.NET에서 정수로?

을 반환 경우 C#에서 나는 단순히 Integer?Integer로 변환 할 수 없다는, (int)blah.getValue()를 사용할 수 있습니다.

아이디어가 있으십니까?

CType(blah.getValue(), Integer) 
+1

왜 캐스팅해야합니까? 'getValue()'가'Integer? '를 반환하면'.Value' 속성은 Integer 유형입니다. 그냥'blah.getValue(). Value'를 사용하십시오. 또는'blah.getValue(). GetValueOrDefault () '도 사용하십시오. –

답변

6

정수 :

+0

CType은 Integer로 정렬했습니다. 감사! – NibblyPig

+4

-1이 답변은 완전히 올바르지 않습니다. null에 대해서는 다른 동작이 있습니다. '(int) blah.getValue()'는'blah.getValue()'가 null 인 경우 예외를 던집니다. 'CType (blah.getValue(), Integer)'는'blah.getValue()'가 null이면 0을 반환합니다. – MarkJ

0

이 같은 CType 기능을 사용해야합니까? nullable 형식이므로 nullable Integer로 변환해야 할 수 있습니다.

'Integer'또는 'Integer?'와 같은 CType 기능을 사용하고 싶습니다. 상황에 따라

Val = CType(Source,Integer?) 
7

은 실제 정수 값을 얻을 수있는 값 속성을 사용합니다.

Dim intNullable As Integer? 

If intNullable.HasValue Then 
Return intNullable.Value 
End If 
+0

+1. 보너스 마크의 경우, InvalidOperationException을 throw하는 Else 절을 ​​추가하십시오. Nullable 객체는 값을 가져야합니다. "C#'(int)'cast가'null' 값을 만나면 어떻게 될까요? – MarkJ

+1

이것은 정답입니다. ('.HasValue'를 테스트 할 때 Else 절이 불필요합니다.) – smirkingman

0
dim a as integer? = 1 
dim b as integer = a.value 

것은 a.hasvalue이 (부울하는 가치가있는 경우는 true를 반환) 여부를 확인해야합니다.

0
myNonNullableVar = if(myNullableVar, 0) 

은 정수이면 0을 설정합니까? null 또는 실제의 값을 돌려 준다 C#에서

, 그것은 다음과 같습니다

myNonNullableVar = myNullableVar ?? 0; 
1

에 CInt (ValueToBeInteger)

0

당신에서는 CType 나에 CInt 또는 일반 정수로 null 허용 정수를 변환하는 다른 변환 기능을 사용하는 경우 null 값 것이다 0으로 변환된다.

nullable 유형에 @Rhapsody의 대답과 같은 값이 있는지 확인하십시오.

는 또한 nullable 형식의 방법 .GetValueOrDefault().GetValueOrDefault(x)를 사용할 수 있습니다. 매개 변수가없는 오버로드는 값이 null 인 경우 데이터 유형의 기본값을 반환합니다. 예 : 정수 기본값은 0입니다. 부울 기본값은 False입니다. 매개 변수가있는 과부하를 사용하면 값이 null 인 경우 사용할 기본값을 지정할 수 있습니다.

Nullable.GetValueOrDefault Method

-1

@SLC : 그것은이 널 INT32의 값을 얻을 매우 간단합니다? C#을 정수로 변환합니다.

예 :

ID(Nullable<Int32?>) 

당신이해야 할 : ID가 NullableObject입니다 ID.value

합니다.

그리고 VB.NET의 정수를 반환합니다.

+0

제공된 언어 샘플은 C#에있는 것처럼 보이며 OP는 특별히 VB.NET을 요구했습니다. 나는이 대답이이 질문에 이미 사용 가능한 풍부한 대답에 대한 추가 정보를 제공하는지 확신하지 못합니다. – KyleMit

+0

'Nullable '은 의미가 없습니다. 아마도'Nullable '(물음표없이)을 입력하셨습니까? –

관련 문제