2008-12-08 26 views
10

ile jenerik sınıfa Uzantı yönteminin uygulanması vb.net'de genel sınıfla çalışıyordum.
Ve bu tür belirtmeden genel sınıf için uzantısı yöntemi uygulanamaz gibi görünüyor. Generic type

Ben

<Extension()> _ 
Public Sub DoSomething(ByVal myGenericDoubleObj As MyGen(Of Double)) 

End Sub 

Bu Tamam DEĞİLDİR

Public Class MyGeneric(Of T) 
    'Methods and properties go here 
    ' 
    ' 
End Class 

Bu Tamam bu jenerik sınıf var (tanımlanmayan olarak IDE bana hata T verir.)

<Extension()> _ 
Public Sub DoSomethingGeneric(ByVal myGenericObj As MyGen(Of T)) 

End Sub 

bu mu .Net'in statik kontrolü ile ilgili bir şey.
"S ile yapmak istediğiniz bir şey, uyumlu olmayabilir ve ben bunu yapmanıza izin vermeyeceğim."

P.S. Genel Sınıf olarak aldığım bütün bu acı, başka bir kütüphaneden geliyor Ve birçok farklı yerde kullanılıyor. Kalıtımsal jenerik sınıfımda bu yöntemi miras almam ve eklemekten biraz çekiniyorum. Eğer uzatma yöntemi genel bir yöntem yaparsanız

+1

yardımcı ait() instread (T) + 1 Tam olarak ne için –

cevap

15

çalışması gerekir

yani DoSomething sadece DoSomething()

<Extension()> _ 
Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T)) 
End Sub 

Umut bu

+0

aradığını çalıştım. Benim üzerimde biraz aptallık. Teşekkürler. – Biswanath

+2

C# sürüm: genel statik geçersiz DoSomething (bu MyGeneric myGenericObj) –

İlgili konular