다음을 통해 공유


ByRef' 매개 변수 '<parametername>'의 값을 해당 인수에 다시 복사하면 '<typename1>' 형식에서 '<typename2>' 형식으로 축소 변환됩니다.

업데이트: 2007년 11월

Copying the value of 'ByRef' parameter '<parametername>' back to the matching argument narrows from type '<typename1>' to type '<typename2>'

프로시저는 해당 매개 변수 형식으로 확대 변환되는 인수로 호출되며 매개 변수에서 인수로 축소 변환됩니다.

클래스 또는 구조체를 정의할 때 하나 이상의 변환 연산자를 정의하여 해당 클래스 또는 구조체 형식을 다른 형식으로 변환할 수 있습니다. 또한 역변환 연산자를 정의하여 다른 형식을 원래의 클래스 또는 구조체 형식으로 변환할 수도 있습니다. 프로시저 호출에서 클래스 또는 구조체 형식을 사용할 때 Visual Basic에서는 이러한 변환 연산자를 사용하여 인수의 형식을 해당 매개 변수의 형식으로 변환할 수 있습니다.

인수에 ByRef를 전달하면 Visual Basic에서는 참조를 전달하는 대신에 인수 값을 프로시저의 지역 변수에 복사합니다. 이러한 경우 프로시저가 반환되면 Visual Basic에서 지역 변수 값을 호출 코드의 인수에 다시 복사해야 합니다.

ByRef 인수 값이 프로시저에 복사되고 인수 및 매개 변수가 동일한 형식인 경우에는 변환이 필요하지 않습니다. 그러나 형식이 다르면 Visual Basic에서는 양방향으로 변환해야 합니다. 형식 중 하나가 사용자의 클래스 또는 구조체 형식이면 Visual Basic에서는 이들 형식을 다른 형식과 양방향 변환해야 합니다. 이들 변환 중 하나가 확대 변환이면 역변환은 축소 변환이 됩니다.

오류 ID: BC32053

이 오류를 해결하려면

  • 가능한 경우 동일한 형식의 호출 인수를 프로시저 매개 변수로 사용합니다. 그러면 Visual Basic에서는 변환이 필요하지 않습니다.

  • 매개 변수 형식과 다른 인수 형식으로 프로시저를 호출해야 하지만 호출 인수에 값을 반환하지 않아도 되는 경우에는 매개 변수를 ByRef 대신 ByVal로 정의합니다.

  • 호출 인수에 값을 반환하려면, 가능한 경우 역변환 연산자를 Widening으로 정의합니다.

참고 항목

작업

방법: 연산자 정의

방법: 변환 연산자 정의

개념

Visual Basic의 프로시저

프로시저 매개 변수 및 인수

값 또는 참조로 인수 전달

연산자 프로시저

확대 변환과 축소 변환

참조

Operator 문

기타 리소스

Visual Basic의 형식 변환