2011-03-09 19 views
9

Bu hatayı bir verinin icecini denedigimde bu hatayı alıyorum:.net hatası: Uygulama özelliği, "ReadOnly" veya "WriteOnly" belirticilerinin eşleşmesi gerekir.

Public Interface IFoo 
    ReadOnly Property Foo() As String 
End Interface 

Public Class myFoo 
    Implements IFoo 

    Public ReadOnly Property Foo() As String 
    Get 
     return "Foo" 
    End Get 
    End Property 
... 
End Class 

Neler eksik?

+1

Sadece C# bazı diğer şeyler yapabilir bilgi vermek için http://stackoverflow.com/questions/6341184/why-cant-interface-readonly-properties-be-overriden-in-vb-net-when-it-is- geçerli – kbvishnu

cevap

19

Sen myFoo.FooIFoo.Foo (katma Implements IFoo.Foo dikkat edin) uygulayan o kodu anlatmak isteyeceksiniz:

Public Interface IFoo 
    ReadOnly Property Foo() As String 
End Interface 

Public Class myFoo 
    Implements IFoo 

    Public ReadOnly Property Foo() As String Implements IFoo.Foo 
     Get 
      Return "Foo" 
     End Get 
    End Property 
End Class 

olarak bildiğim kadarıyla, VB.NET aynı şekilde örtülü arayüz uygulamaları desteklemez C# gibi.

+1

Cevabınıza tökez olana kadar bu konuda deliriyordum. Teşekkürler! – Michael

+0

Yani sınıftaki ve arabirimdeki özellik eşleşiyorsa. o zaman onları otomatik olarak eşleştirmiyor mu? – Steve

+0

@Steve: hayır, bildiğim kadarıyla VB bunu sizin için yapmayacaktır; Tip üyesi, bir arabirim üyesi uyguladığını açıkça belirtmeniz gerekir. –

İlgili konular