development

C # var 키워드와 동일한 VB.NET

big-blog 2020. 6. 17. 07:42
반응형

C # var 키워드와 동일한 VB.NET


이 질문에는 이미 답변이 있습니다.

C # var키워드에 해당하는 VB.NET이 있습니까?

LINQ 쿼리 결과를 검색하는 데 사용하고 싶습니다.


이 기능이 제대로 작동하려면 옵션 추론켜져 있어야합니다 . 그렇다면 VB.NET에서 형식을 생략하면 (Visual Basic 9) 변수가 암시 적으로 입력됩니다.

입니다 하지 변수로, VB.NET 이전 버전의 "옵션 엄격한 끄기"와 같은 것입니다 강력한 형식; C #과 같은 암시 적으로 var키워드가 수행되었습니다.

Dim foo = "foo"

foo로 선언됩니다 String.


키워드 가 필요 Option Infer On하고 사용하기 만하면됩니다 Dim.

Dim query = From x In y Where x.z = w Select x

다른 답변 들과는 달리, 당신 필요 하지 않습니다Option Strict On .

당신은 VS IDE를 사용하는 경우 그냥 가져가 변수 이름을 통해,하지만 변수의 유형 (컴파일시 얻을 수 있습니다 GetType(variableName)" '<여기서 variableName>'는 정의되지 않았습니다 입력합니다."- - 컴파일되지 않습니다을하고 VarType(variable)실제로 단지입니다 VB 버전은 variable.GetType()런타임에 변수에 저장된 인스턴스 유형을 반환합니다.)

Function MyVarType(Of T)(ByRef Var As T) As Type
    Return GetType(T)
End Function

상세히:

  • 없이 Dim:

    Explicit Off, 준다 Object

    Explicit On, 오류 "이름 ''이 (가) 선언되지 않았습니다."

  • Dim:

    • Infer On예상 유형을 제공합니다.
    • Infer Off:

      Strict On, 오류 "Option Strict On을 사용하려면 모든 선언에 'As'clasue가 있어야합니다."

      Strict Off, 준다 Object

의견에서 언급했듯이 Linq가 더 유용하게 작동 하는 다른 이유Option Strict On있습니다. 특히 여러 가지 해결 방법이 있지만 Into Max(Anon.SomeString)으로 작업 할 수 없습니다 Option Strict Off.


Dim유형없이 기존 키워드를 사용하십시오 .

최소 작업 예 :

Option Strict On ' Always a good idea
Option Infer On ' Required for type inference

Imports System

Module MainModule
    Sub Main()
        Dim i = 42
        Dim s = "Hello"
        Console.WriteLine("{0}, {1}", i.GetType(), s.GetType())
        ' Prints System.Int32, System.String '
    End Sub
End Module

이 예제에서 객체 가 나를 위해 일했습니다.

씨#

JToken projects = client.Search(ObjCode.PROJECT, new { groupID = userGroupID });
foreach( var j in projects["data"].Children()) {
        Debug.WriteLine("Name: {0}", j.Value<string>("name"));
}

VB

Dim projects As JToken = client.Search(ObjCode.PROJECT, New With { _
Key .groupID = userGroupID _
})

For Each j As Object In projects("data").Children()
       Debug.WriteLine("Name: {0}", j.Value(Of String)("name"))
Next

참고 URL : https://stackoverflow.com/questions/2478552/vb-net-equivalent-to-c-sharp-var-keyword

반응형