2011-03-09 4 views
9

vb.net에서 인터페이스를 구현하려고 할 때이 오류가 발생합니다..net 오류 : 구현 속성이 'ReadOnly'또는 'WriteOnly'지정자와 일치해야합니다.

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 

무엇이 누락 되었습니까?

+1

그냥 C# 다른 물건을 할 수있는 알릴 수 http://stackoverflow.com/questions/6341184/why-cant-interface-readonly-properties-be-overriden-in-vb-net-when-it-is- 유효한 – kbvishnu

답변

19

당신은 myFoo.FooIFoo.Foo이 (추가 Implements IFoo.Foo 통지)를 구현하는 코드를 말하고 싶은 것 :

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 

지금까지 내가 아는 한, VB.NET 같은 방식으로 암시 적 인터페이스 구현을 지원하지 않습니다 C#이하는 것처럼.

+1

나는 당신의 대답에 비틀 거릴 때까지 이것에 열매가 맺히고 있었다. 감사! – Michael

+0

그래서 클래스와 인터페이스의 속성이 일치하면. 그것들은 자동적으로 일치하지 않습니다. – Steve

+0

@ 스티브 : 아니오, VB가 당신을 위해 그렇게하지 않을 것입니다. 형식 멤버가 인터페이스 멤버를 구현한다는 것을 명시 적으로 명시해야합니다. –