Я связываю создание универсального решения для создания экземпляров моих форм. с использованием поведения однопользовательского режима в vb.net
. Но это не работает в любом случае и всегда защищает меня компилировать:Создание общего определения для Singleton объектов/форм
Public Class SingletonGenerator(Of TForm)
Private _inst As Object
Public ReadOnly Property Instance As SingletonInstance(Of TForm)
Get
If _inst Is Nothing Then
_inst = New TForm()
End If
Return _inst
End Get
End Property
End Class
Но эта ошибка ограничивает меня продолжать:
Ошибка 9 «New» не может быть использован параметр типа, не имеет «нового» ограничения.
И я не уверен, если я заменю свой код с New Form()
он работает, как ожидалось (потому что создавать объекты родительского класса form()
и может потерять некоторые инициализации в дочернем классе.)
Может кто-нибудь, пожалуйста, объясните почему это происходит или как я могу иметь одиночные экземпляры объектов в пути OOP
, которые не требуют копирования/вставки этих общих строк кода, которые используются в singleton для каждого нового определенного класса?
Если у вас нет аргументов для перехода в t он конструктор, просто добавьте ограничение New. Я считаю, что синтаксис в VB.NET есть '(Of TForm As New)'. – Lucero
Где именно шаблон singleton применяется в этом коде? Я смущен. В этом примере у вас должен быть экземпляр «SingletonGenerator» для каждой формы, с которой вы хотите работать. – shadow
@ Lucero Вы комментируете правильный ответ, и это было то, что я не знал, «что я могу разместить новое ключевое слово как тип». Благодарю. –