Ich stolperte dies über in einigen C# -Code ...:Wie stelle ich eine Eigenschaft öffentlich, aber privat in vb.net?
public Foo Foo { get; private set; }
Wie kann ich die gleiche Sache in vb tun?
Ich stolperte dies über in einigen C# -Code ...:Wie stelle ich eine Eigenschaft öffentlich, aber privat in vb.net?
public Foo Foo { get; private set; }
Wie kann ich die gleiche Sache in vb tun?
Natürlich (schmatzt Stirn) ...:
Public Property Foo() As Foo
Get
...
End Get
Private Set(ByVal value As Foo)
...
End Set
End Property
Ich hätte nicht gedacht, über das private Stichwort setzt da unten ...
VB.NET haben keine automatischen Eigenschaften wie C# 3.0 tut. In VB wäre das Äquivalent:
Private _Foo As SomeType
Public Property Foo() As SomeType
Get
Return _Foo
End Get
Private Set(ByVal value As SomeType)
_Foo = value
End Set
End Property
Wie @ em70 in seiner Antwort erwähnt, beachten Sie, dass dies nicht ganz die gleiche Sache ist. Get/Set mit verschiedenen Zugriffsebenen in VB.NET funktioniert nur mit einem Backing-Feld, während die C# -Version kein Backing-Feld benötigt, siehe [Eigenschaftsdefinitionen, die Standardsyntax auf MSDN erfordern] (https://msdn.microsoft. com/de-de/library/dd293589.aspx # Anker_2) – jrh