soy normalmente aC# programador, pero ahora estoy trabajando en VB para éste proyecto cuando se utiliza para configurar una clase Singleton me gustaría seguir el modelo Jon Skeetpatrón singleton en VB
public sealed class Singleton
{
static Singleton instance = null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
//Added to illistrate the point
public static void a()
{
}
public void b()
{
}
}
o una de las variaciones ahora si escribo la declaración en C#
Singleton.Instance. ¿Qué procedimientos son todos los miembros que no son estáticos, b pero no a.
Ahora, cuando hacen lo mismo en VB
Private Shared _instance As StackTracker
Private Shared ReadOnly _lock As Object = New Object()
Private Sub New()
_WorkingStack = New Stack(Of MethodObject)
_HistoryStack = New Queue(Of MethodObject)
End Sub
Public Shared ReadOnly Property Instance() As StackTracker
Get
SyncLock _lock
If (_instance Is Nothing) Then
_instance = New StackTracker()
End If
End SyncLock
Return _instance
End Get
End Property
consigo StackTracker.Instance.Instance y sigue adelante, mientras que no es el fin del mundo se ve mal.
Pregunta: ¿Hay alguna forma en VB para ocultar la segunda instancia para que el usuario no pueda invocar recursivamente Instancia?
se parece mucho a la Segunda versión - seguridad de hilo simple, no usa 4.0 realmente utilizando 2.0 objetivo con IDE 2008. – Mike