2008-09-16 10 views
1

null 입력 가능 속성이 있으며 null 값을 반환하고 싶습니다. VB.NET에서 어떻게 할 수 있습니까?Nullable (Of T)의 null 값은 무엇입니까?

현재이 솔루션을 사용하고 있지만 더 나은 방법이있을 것이라고 생각합니다.

답변

6

"Nothing"이라는 키워드를 찾으십니까?

+0

흠 예. 그 사실은 C# null과 동일한 것은 아니지만 객체가 인스턴스화되었는지 여부를 확인하는 데만 사용되었다고 생각합니다. – thomasb

2

예, VB.NET에서는 Nothing이거나 C#에서는 null입니다.

Null 허용 일반적인 데이터 형식 컴파일러에게 값 유형에 "아무것도"(또는 널 (null) "값을 할당하지 할 수있는 가능성을 제공합니다. explicitally를 작성하지 않고, 당신은 그것을 할 수 없습니다.

Nullable Types in C#

1
Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer) 
    Get 
     If Current.Request.QueryString("rid") <> "" Then 
      Return CInt(Current.Request.QueryString("rid")) 
     Else 
      Return Nothing 
     End If 
    End Get 
End Property 
0

또는이 ReSharper에서 나를 :)에

finder.Advisor = ucEstateFinder.Advisor == "-1" ? (long?)null : long.Parse(ucEstateFinder.Advisor); 

을 가르쳤다 내가 정직하게, 사용하는 방법입니다 내가 직접 finder.Advisor에 null을 할당하면 위의 할당 * (오래?) * 아무런 문제가 없을 것입니다. 하지만 만약 내가 if 문을 사용하려고하면 그것을 캐스팅 할 필요가있다. (long?)null.

0

Nothing을 사용할 수 있지만 "기존"코드는 거의 정확합니다. 다만 얻기 위해 시도하지 않는 .Value :

Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer) 
    Get 
     If Current.Request.QueryString("rid") <> "" Then 
      Return CInt(Current.Request.QueryString("rid")) 
     Else 
      Return New Nullable(Of Integer) 
     End If 
    End Get 
End Property 

당신이 If 표현으로 감소 할 일이 경우 다음 간단한 해결책이된다 : 실제로,

Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer) 
    Get 
     Return If(Current.Request.QueryString("rid") <> "", _ 
      CInt(Current.Request.QueryString("rid")), _ 
      New Nullable(Of Integer)) 
    End Get 
End Property