我在VB.NET和C#(.NET2)中遇到了一个关于静态/共享成员可见性的情况。在VB.NET中,这种情况对我来说有点奇怪:
public class A
{
private static A instance;
public static A Instance
{
get { return instance; }
}
public string Name { get { } }
}
使用方法:
A.Instance.Name
// 仅限 Name 是“可见的”
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
用法:
A.Instance.Instance.Instance.Instance...
// 共享成员的行为与类公共成员的行为相同,可以无限重复使用..
这是微软的疏忽还是 VB.NET 的“特性”?