'<genericprocedurename>'의 형식 매개 변수 '<typeparametername>'을(를) 유추할 수 없습니다.
업데이트: 2007년 11월
Type parameter '<typeparametername>' for '<genericprocedurename>' cannot be inferred
형식 인수 목록을 제공하지 않고 제네릭 프로시저를 호출했으며 형식 인수 중 하나에 대한 형식 유추에 실패했습니다.
제네릭 프로시저를 호출할 때는 일반적으로 해당 프로시저에 의해 정의된 각 형식 매개 변수에 대한 형식 인수를 제공해야 합니다. 그러나 형식 인수 목록을 완전히 생략할 수도 있습니다. 이렇게 하면 컴파일러는 호출 컨텍스트에서 각 형식 인수의 형식을 유추하려고 합니다. 자세한 내용은 Visual Basic의 제네릭 프로시저의 "형식 유추"를 참조하십시오.
형식 유추가 실패하는 이유 중 하나는 형식 매개 변수와 호출 형식의 차수가 서로 다르기 때문입니다. 다음 코드에서는 이를 보여 줍니다.
Public Sub displayLargest(Of t As IComparable)(ByVal arg() As t)
' Insert code to find and display the largest element of arg().
End Sub
Public Sub callGenericSub()
Dim testValue As Integer
findLargest(testValue)
Dim testMatrix(,) As Integer
findLargest(testMatrix)
End Sub
위의 코드에서 형식 매개 변수 t는 1차원 배열을 호출하는 반면 컴파일러가 호출에서 유추하는 형식 인수는 스칼라(testValue)이며 2차원 배열(testMatrix)이므로 findLargest에 대한 두 호출 모두 이 오류를 발생시킵니다.
오류 ID: BC32050
이 오류를 해결하려면
일반 인수의 형식을 확인하여 제네릭 프로시저에 대해 선언된 형식 매개 변수와 형식 유추가 일관되도록 합니다.
-또는-
형식 유추가 필요하지 않도록 전체 형식 인수 목록을 사용하여 제네릭 프로시저를 호출합니다.