İngilizce dilinde oku

Aracılığıyla paylaş


'<typeparametername1>' tür parametresi, 'typeparametername2>' tür parametresi< için 'Yeni' kısıtlamasına veya 'Yeni' kısıtlamasına sahip olmalıdır

Deyimi, kısıtlamayı karşılamak için kısıtlanmamış bir tür parametresi geçiren genel bir New tür oluşturur.

Kısıtlama, New bu tür parametresine sağlanan tür bağımsız değişkeninin, nesne oluşturan kod tarafından erişilebilen parametresiz bir oluşturucuyu kullanıma sunması gerektiği anlamına gelir. Tüm değer türlerinin parametresiz oluşturucuları vardır, ancak tüm başvuru türleri bunu yapmaz. Bu nedenle Structure kısıtlama kısıtlamayı New karşılar, ancak Class kısıtlama veya bir sınıf veya arabirim adı yerine gelmez.

Aşağıdaki deyimler bu hatayı oluşturabilir.

VB
Public Class c1(Of t As New)
End Class
Public Class c2(Of u)
    Public testObject As New c1(Of u)
End Class

sınıfı c2 öğesinden c1bir nesne oluşturduğunda tür parametresi, tür parametresindeki tu kısıtlamayı New karşılamaz.

Hata Kimliği: BC32084

Bu hatayı düzeltmek için

  • Genel türe geçirilecek tür parametresi veya New kısıtlamasını karşılayabilirseStructure, tanımına uygun kısıtlamayı ekleyin.

    VB
    Public Class c2(Of u As Structure)
    
  • tür parametresi veya New kısıtlamasını Structure karşılayamıyorsa, bunu genel türe geçirmeyin. Tür bağımsız değişkeni olarak başka bir şey geçirmelisiniz.

Ayrıca bkz.