【问题标题】:Private or Protected Set for a MustOverride PropertyMustOverride 属性的私有或受保护集
【发布时间】:2010-07-24 19:54:23
【问题描述】:

我想要一个私有或受保护的“Setter”用于一个也恰好是抽象的属性(MustOverride)。我正在将一些代码从 C# 移植到 VB,而在 C# 中,这非常简单。在 VB 中没有那么多(无论如何对我来说)。

一些代码...

在 C# 中...

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; }
    }
}

在 VB 中...

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

问题似乎是无法充实声明中的 Get/Set 细节。

我是在追鬼吗?

【问题讨论】:

标签: vb.net properties abstract


【解决方案1】:

为了记录,最接近的 VB 翻译会给你:

Public MustInherit Class BaseClassWithAnAbstractProperty

    Public ReadOnly MustOverride Property AnAbstractIntegerProperty() As Integer

End Class

这个可能可以工作,但是as I found out,VB 至少不支持这个接口

【讨论】:

  • 是的,实际上我只是复制/粘贴了您的一个 cmets。我要去工作了。谢谢
猜你喜欢
  • 1970-01-01
  • 2023-03-04
  • 2014-12-14
  • 2016-08-13
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 2013-12-05
相关资源
最近更新 更多