in C#:
public string Property { get; private set; }
in VB?
Please vote or/and share your ideas!
According to this MSDN article, you can't:
Auto-implemented properties are convenient and support many programming scenarios. However, there are situations in which you cannot use an auto-implemented property and must instead use standard, or expanded, property syntax.
You have to use expanded property-definition syntax if you want to do any one of the following:
[...]
- Specify different accessibility for the Get and Set procedure. For example, you might want to make the Set procedure Private and the Get procedure Public.
I don't think that is possible (yet).
See this link on MSDN.
The above article even links to another one about mixed access levels.
I found this on Microsoft Connect, so they are thinking about it (If it will be for VS2010 that's another question).
Like this:
Private Thingy As Integer
Property Thing() As Integer
Get
Return Thingy
End Get
Private Set(ByVal value As Integer)
Thingy = value
End Set
End Property
Auto property in VB10
Property PartNo As Integer = 44302
But with a private set still can't be done in vb not even in VB10 see here:
From MSDN (as john said):
Property Definitions That Require Standard Syntax :
- Specify different accessibility for the Get and Set procedure. For example, you might want to make the Set procedure Private and the Get procedure Public.