static / Shared dans VB.NET et visibilité C #

J'ai confronté à une situation dans VB.NET et C# (.NET2) avec la visibilité de la statique/membres partagés. Il me semble un peu étrange dans VB.NET:

    public class A 
    {
        private static A instance;
        public static A Instance 
        {
            get { return instance; }
        }

        public string Name { get { } }
    }

utilisation:
A.Instance.Name //SEUL Nom est "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

utilisation:

A.Instance.Instance.Instance.Instance...

//partagée membre se comporte comme une classe publique, je peux le répéter à l'infini..

est-ce un Microsoft de surveillance ou d'un VB.NET la "fonctionnalité"?

source d'informationauteur serhio