I have faced with a situation in VB.NET and C# (.NET2) with the visibility of the static/shared members. It seems to me a little strange in VB.NET:
public class A
{
private static A instance;
public static A Instance
{
get { return instance; }
}
public string Name { get { } }
}
usage:
A.Instance.Name
// ONLY Name is "visible"
VB.NET:
Public Class A
Private Shared _instance As A
Public Shared ReadOnly Property Instance() As A
Get
Return _instance
End Get
End Property
Public ReadOnly Property Name() As String
Get
Return ""
End Get
End Property
End Class
usage:
A.Instance.Instance.Instance.Instance...
// shared member behaves like a class public one I can repeat it to infinite..
is this a Microsoft oversight or a VB.NET "feature"?
See Question&Answers more detail:os