2010-07-24 3 views
3

추상 (MustOverride) 속성 인 개인용 또는 보호용 "Setter"를 갖고 싶습니다. 나는 C#에서 VB로 그리고 C#에서 몇몇 코드를 이식하고있다. 이것은 매우 간단하다. VB에서별로 (별로 어쨌든).MustOverride 속성에 대한 비공개 또는 보호 집합

일부 코드 ... C#에서

... VB에서

public abstract class BaseClassWithAnAbstractProperty 
{ 
    public abstract int AnAbstractIntegerProperty { get; protected set; } 
} 

public class Foo : BaseClassWithAnAbstractProperty 
{ 
    private int _anAbstractIntegerPropertyField = 0; 

    public override int AnAbstractIntegerProperty 
    { 
     get { return _anAbstractIntegerPropertyField; } 
     protected set { _anAbstractIntegerPropertyField = value; } 
    } 
} 

...

Public MustInherit Class BaseClassWithAnAbstractProperty 

    Public MustOverride Property AnAbstractIntegerProperty() As Integer 

End Class 

Public Class Foo 
    Inherits BaseClassWithAnAbstractProperty 

    Private _anAbstractIntegerPropertyField As Integer 


    Public Overrides Property AnAbstractIntegerProperty As Integer 
     Get 
      Return _anAbstractIntegerPropertyField 
     End Get 
     Protected Set(ByVal value As Integer) 
      _anAbstractIntegerPropertyField = value 
     End Set 
    End Property 
End Class 

문제가 없다는 것으로 보인다 살 아웃 가져 오기/선언에 구체적인 사항을 설정하십시오.

유령을 쫓고 있습니까?

기록을 위해
+0

가능한 중복이 기능을 지원하지 않습니다 [ Protected 인터페이스에서 정의 된 속성에 대한 VB.Net에서 설정] (http://stackoverflow.com/questions/2362381/protected-set-in-vb-net-for-a-property-defined-in-an-interface) –

+0

나는 그것이 중복이라고 생각하지 않는다. 질문은 다릅니다. 답은 두 가지 질문에 모두 적용됩니다. –

답변

2

, 가장 가까운 VB 번역 당신에게 줄 것이다 :

Public MustInherit Class BaseClassWithAnAbstractProperty 

    Public ReadOnly MustOverride Property AnAbstractIntegerProperty() As Integer 

End Class 

작동하지만 as I found out를, VB는 인터페이스의 적어도

+0

네, 실제로 귀하의 의견 중 하나를 복사하거나 붙여 넣었습니다. 나는 주변에서 일할거야. 감사 – nullphonic