VB.NET에서 문자열 배열 선언 및 초기화
함수에서 문자열 배열을 반환하려다가 오류로 인해 놀랐습니다.
이 작업이 효과가 있을 것으로 예상했지만 오류가 발생합니다.
Public Function TestError() As String()
Return {"foo", "bar"}
End Function
효과:
Public Function TestOK() As String()
Dim ar As String() = {"foo", "bar"}
Return ar
End Function
다음과 같이 합니다.
Public Function TestOK() As String()
Return New String() {"foo", "bar"}
End Function
{}의 의미가 불분명한 것 같습니다. 문자열 배열을 명시적으로 만들고 초기화하지 않고 암시적으로 반환하는 방법이 있습니까?
Visual Basic 10 대 Visual Basic 9에서 유형 추론에 대한 배열 이니셜라이저 지원이 변경되었습니다.
이전 버전의 VB에서는 배열을 나타내기 위해 빈 괄호를 사용해야 했습니다.또한 다음과 같이 달리 명시되지 않는 한 배열을 객체 배열로 정의합니다.
' Integer array
Dim i as Integer() = {1, 2, 3, 4}
' Object array
Dim o() = {1, 2, 3}
추가 정보 확인:
Visual Basic 2010의 수집 및 배열 이니셜라이저
Public Function TestError() As String()
Return {"foo", "bar"}
End Function
저에게는 잘 작동하고 당신에게는 잘 작동해야 하지만, 당신의 프로젝트에서 암묵적 선언을 사용하는 것을 허용해야 할 수도 있습니다.프로그램 설정의 컴파일 섹션에서 옵션 제한을 해제하는 것 같습니다.
VS 2008(VB.NET 9.0)을 사용하고 있으므로 새 인스턴스 생성을 선언해야 합니다.
New String() {"foo", "Bar"}
이 작업을 수행하려면 "옵션 추론"을 지정해야 합니다.
옵션 추론을 사용하면 컴파일러가 사용자의 코드로 표시되는 내용을 추측할 수 있으므로 {"stuff"}이(가) 문자열 배열이라고 추측할 수 있습니다."Option Infer Off"를 사용하면 {"stuff"}에 할당된 유형이 없으므로 유형 지정자가 없으면 항상 실패합니다.
Infer 옵션은 새 프로젝트에서는 기본적으로 On이지만 이전 프레임워크에서 3.5까지 마이그레이션할 때는 기본적으로 Off입니다.
의견 수렴:
또한 "Option Explicit Off(옵션 명시적 해제)"가 있다고 합니다.제발 이러지 마.
옵션 명시적 해제를 설정하면 변수를 선언할 필요가 없습니다.이는 다음 코드가 소리 없이 보이지 않게 변수를 생성한다는 것을 의미합니다.Y":
Dim X as Integer
Y = 3
이것은 끔찍하고, 미쳤으며, 잘못된 것입니다.이것은 오타를 낼 때 변수를 만듭니다.저는 그들이 그 언어에서 그것을 제거하기를 계속 바랍니다.
언급URL : https://stackoverflow.com/questions/5262577/declaring-and-initializing-a-string-array-in-vb-net
'programing' 카테고리의 다른 글
루비에서 숫자 배열을 합치는 방법은 무엇입니까? (0) | 2023.05.24 |
---|---|
기본 창 앞에 대화 상자를 표시하는 WPF (0) | 2023.05.24 |
항목() 대신 반복 항목()을 사용해야 하는 경우는 언제입니까? (0) | 2023.05.19 |
복제 세트 몽고 도커-구성 (0) | 2023.05.19 |
vb.net 에서 dbnull 데이터 처리 (0) | 2023.05.19 |