Я обычно переменный ток # программиста, но я сейчас работаю в VB для этого одного проекта, когда я использую, чтобы создать класс одноплодного я бы следовать моделям Jon тарелочексинглтон шаблона в 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()
{
}
}
или один из варианты теперь, если я напишу заявление в C#
Singleton.Instance. Какими процедурами являются все члены, которые не являются статическими, b, но не a.
Теперь, когда я делаю то же самое в 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
я StackTracker.Instance.Instance и продолжает идти, в то время как это не конец света, это выглядит плохо.
Вопрос: Есть ли способ в VB скрыть второй экземпляр, чтобы пользователь не мог рекурсивно вызвать экземпляр?
он очень похож на вторую версию - простое управление потоками, не использующее 4.0, фактически использующее цель 2.0 с IDE 2008. – Mike