아래의 코드를 살펴 보시기 바랍니다 :일반 다형성
Public Class Student
Public Sub PassList(ByVal StudentList As List(Of Student))
Dim s1 As New Student
Dim s2 As New Student
Dim s3 As New Student
StudentList.Add(s1)
StudentList.Add(s2)
StudentList.Add(s3)
End Sub
Public Sub TestReturnList()
Dim list As List(Of PostGraduate)
PassList(list)
End Sub
End Class
Public Class PostGraduate
Inherits Student
End Class
Public Class PostUndergraduate
Inherits Student
End Class
컴파일러 오류가 있습니다 :
Value of type 'System.Collections.Generic.List(Of WindowsApplication1.PostGraduate)' cannot be converted to 'System.Collections.Generic.List(Of WindowsApplication1.Student)
내가 오류에 대한 이유를 이해합니다. 해결 방법이 있습니까?
"해결 방법이 있습니까?" -'PassList' 내에서'StudentList'가 * 사용되는 방식에 달려 있습니다. 그것만이 반복되면, @ Neolisk의 대답이 적절합니다. 다른 작업을 수행하는 경우 해결 방법이 있는지 확인하기 위해 목록을 사용하여 수행 할 작업을 Google에 알려줘야합니다. –
@Damien_The_Unbeliever, 질문에 더 많이 추가했습니다. 감사. – w0051977
해결 방법이 있다고 생각하지 않습니다. 호출자 ('TestReturnList')는'PassList'를 호출 한 후에도'List (Of Postgroduate)'를 반복하면'PostGraduate' (또는에서 파생 된 타입)이 발견된다는 매우 합리적인 기대를 가지고 있습니다 그것). 이리스트에 평범한 '학생'을 찾을 수는 없을 것입니다. –