클래스 B
이 클래스 A
의 자손 인 경우 이것은 Collection(Of B)
이 Collection(Of A)
의 자손임을 의미하지 않습니다!
당신이 이러한 정의
Dim stringList As List(Of String)
Public Sub DoSomthingWithList(list As List(Of object))
list.Add(Date.Now)
End Sub
이 있고이
DoSomthingWithList(stringList)
같은 메서드를 호출 할 수 있다면 그 방법은 실제로 문자열의 목록입니다 목록에 Date
를 추가 할 것 ! 매개 변수가 object
으로 입력되었으므로 날짜는 박스로 처리 (즉, 객체로 변환)되지만 문자열로 변환되지는 않습니다.
List(Of X)
과 List(Of Y)
은 Y
이 X
을 상속하더라도 호환되지 않습니다. 당신이 WebsiteCollection
와 LoadSubscriptions
를 호출하면 어떻게됩니까 또 다른 예
Public Class TestClass
Implements IBaseLeaf
// etc
에서
살펴 보자?
Public Sub LoadSubscriptions(ByVal collection As BaseCollection(Of IBaseLeaf))
collection.Add(New TestClass())
End Sub
[일반 사항의 공분산 및 반공립] (http://msdn.microsoft.com/en-us/library/dd799517.aspx) – MarkJ