C# out 매개 변수에 해당하는 VB.NET이 있습니까?
VB.NET에 C#과 직접 동등한 값이 있습니까?out
함수에 전달된 변수를 초기화할 필요가 없는 함수 매개변수는 무엇입니까?
아니요, 이와 동등한 것은 없습니다.out
키워드를 입력합니다.
그러나 VB는 메서드의 모든 로컬 변수를 자동으로 초기화하므로 다음을 사용할 수 있습니다.ByRef
먼저 변수를 명시적으로 초기화할 필요가 없습니다.
예:
Sub Main()
Dim y As Integer
Test(y)
End Sub
Sub Test(ByRef x As Integer)
x = 42
End Sub
(프레임워크에서 코드를 검사하는 경우(예: Double).TryParse), 다음을 볼 수 있습니다.<OutAttribute>
매개 변수에 추가되었지만 COM 인터op 또는 플랫폼 호출을 위해 호출이 마샬링될 때만 차이가 납니다.)
아니요, 초기화되지 않은 변수를 경고 없이 메소드로 전달할 수 있는 동등한 구조는 없지만, 다음과 같이 속성을 지정하는 제 질의응답에서 언급한 바와 같이ByRef
매개 변수 정의는 VB가 무시하지만 C#에 의해 다음과 같이 처리됩니다.out
매개 변수
따라서, 다음에 대한 참조 변수를 사전 초기화합니다.Nothing
및 지정<Out()> ByRef
C# 사용자가 메소드에 액세스할 경우 작동합니다.
기본값에 액세스할 시기를 알고 있다고 생각되는 경우Nothing
그렇지 않으면 할당되지 않은 참조 변수에서 프로젝트 수준(프로젝트 속성 > 컴파일)에서 "경고 구성" "할당 전 변수 사용"을 "없음"으로 설정할 수 있으며, 이 설정을 변경하기 전에 구성을 "모든 구성"으로 설정할 수 있습니다. 또는 VS2015(VB.NET 14)에서 사용할 수 있습니다.#Disable Warning BC42030
.
C# 버전
void TestFunc(int x, ref int y, out int z) {
x++;
y++;
z = 5;
}
Vb.net 버전
Sub TestFunc(ByVal x As Integer, ByRef y As Integer, ByRef z As Integer)
x += 1
y += 1
z = 5
End Sub
갱신하다
의견에 명시된 대로 아웃 슬롯에서 사용할 매개 변수를 초기화하는 것을 잊지 마십시오.
저는 VB.NET에서 배열을 다시 전달하는 함수를 "참조"라고 부르는 문제가 있었습니다.
컴파일러가 경고로 플래그를 지정했음에도 불구하고 문제가 없었습니다.수정은 매우 간단하고 아마도 좋은 프로그래밍 연습일 것입니다.
나는 변했어요
Dim m_arr_values() as Integer
fnRetArray(m_arr_values)
로.
' Even though 'Nothing' is the default value, setting it
' stops the compiler complaining.
Dim m_arr_values() as Integer = Nothing
fnRetArray(m_arr_values)
변수 이름이 설명적인 경우 코드화할 때도 유용합니다.
Sub fnCreatePalette(ByRef arr_in_pal() As color, ByRef arr_out_pal() as uinteger)
...
End Sub
VB는 C#out과 동일해야 하는 속성을 가지고 있지만, 오늘날 당신은 그것을 사용하더라도 여전히 경고를 받습니다.github의 vblang 지역에 고정에 대한 세부 사항이 있습니다.https://github.com/dotnet/vblang/issues/67 .
VB.NET에서 기준 전달 방법을 사용할 수 있습니다.
C#에는 Out 매개 변수 메커니즘이 필요합니다. 변수를 초기화하지 않고 사용할 수 없기 때문입니다.
VB.NET은 자동으로 실행되므로 특별한 키워드가 필요하지 않습니다.
ByRef를 사용하면 됩니다.
변수 앞에 키워드 ByRef를 사용합니다.
언급URL : https://stackoverflow.com/questions/4358742/is-there-a-vb-net-equivalent-of-c-sharp-out-parameters
'programing' 카테고리의 다른 글
여러 변수를 동일한 값에 할당하는 Python?행동을 나열 (0) | 2023.05.17 |
---|---|
Android Device Chooser -- 장치가 표시되지 않음 (0) | 2023.05.17 |
jQuery로 텍스트 콘텐츠로 요소를 찾으려면 어떻게 해야 합니까? (0) | 2023.05.17 |
Panda를 사용하여 임의 정수의 데이터 프레임을 만드는 방법은 무엇입니까? (0) | 2023.05.17 |
Azure VM 로드 밸런싱 대 Traffic Manager (0) | 2023.05.17 |