C# var 키워드에 상당하는 VB.NET
VB가 있나요?C#에 상당하는 NETvar키워드?
LINQ 쿼리 결과를 취득하기 위해 사용하고 싶습니다.
이 기능이 제대로 작동하려면 옵션 유추가 켜져 있어야 합니다.이 경우 VB에서 유형을 생략합니다.NET(Visual Basic 9)는 암묵적으로 변수를 입력합니다.
이는 이전 버전의 VB의 "Option Strict Off"와는 다릅니다.변수가 강하게 입력되어 있기 때문에 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)는 컴파일하지 않습니다.- "유형 <변수명>은 정의되어 있지 않습니다."- 및VarType(variable)실제로는 VB 버전일 뿐입니다.variable.GetType()실행 시 변수에 저장된 인스턴스의 유형을 반환합니다.)사용:
Function MyVarType(Of T)(ByRef Var As T) As Type
Return GetType(T)
End Function
상세:
없이.
Dim:Explicit Off, 제공하다ObjectExplicit On, 에러 "이름 "이 선언되지 않았습니다."와 함께
Dim:Infer On는 예상되는 유형을 제공합니다.Infer Off:Strict On, "Option Strict On 에서는 모든 선언에 'As' 클래스가 필요합니다."Strict Off, 제공하다Object
댓글에서 말씀드렸듯이 또 다른 이유가 있습니다.Option Strict On를 사용하면 Linq가 보다 유용하게 동작할 수 있습니다.구체적으로 말하면,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
이 예에서는 오브젝트가 기능했습니다.
C#
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
'programing' 카테고리의 다른 글
| SSMS에서 ntext 또는 nvarchar(최대)의 모든 텍스트를 어떻게 표시합니까? (0) | 2023.04.07 |
|---|---|
| SQL Server에서 여러 열을 동시에 변경하는 방법 (0) | 2023.04.07 |
| 리액트 라우터가 aws s3 버킷에서 작동하지 않음 (0) | 2023.04.02 |
| Spring Boot 2로 업그레이드한 후 Object Mapper가 기본 컨스트럭터 없이 역직렬화할 수 없음 (0) | 2023.04.02 |
| 리액트 테스트 라이브러리를 사용하여 장치 테스트에서 작동하도록 RizeObserver를 시뮬레이션하는 방법 (0) | 2023.04.02 |