NOTE: This is not a duplicate of VB.NET equivalent of C# property shorthand?. This question is about how to have different access rights on getter and setter of a VB auto-property; e.g public getter and private setter. That question is about the syntax for auto-property (and does not mention this issue).


I am trying to convert an auto Property (public getter and private setter) from C# to VB.NET.

But after conversion VB.NET is maintaining a private field.

C# code

class DemoViewModel
{
    DemoViewModel (){  AddCommand = new RelayCommand(); }

    public ICommand AddCommand {get;private set;}
}

VB.NET equivalent from code converter is

Class DemoViewModel
Private Sub New()
    AddCommand = New RelayCommand()
End Sub

Public Property AddCommand() As ICommand
    Get
        Return m_AddCommand
    End Get
    Private Set
        m_AddCommand = Value
    End Set
End Property
Private m_AddCommand As ICommand
End Class

VB.NET code generates private backing field.

Is it possible to get rid of this back field in source code (like c#)? How?

Without this feature, VB.NET source will have lots of such redundancy.

Edit
Report