VB.NETVB.NET WinForms, реализующего интерфейс
Я хочу, чтобы некоторое WinForms реализовать интерфейс, и быть в состоянии передать их к процедуре, которая может «видеть» реализованные свойства, а также «стандартные методы 'формы. Это то, что я до сих пор ...
Public Interface IMyInterface
Property MyProperty As String
End Interface
Public Class MyForm
Implements IMyInterface
Private _MyProperty As String
Public Property MyProperty() As String Implements IMyInterface.MyProperty
Get
Return _MyProperty
End Get
Set(ByVal value As String)
_MyProperty = value
End Set
End Property
End Class
тогда, в другом месте у меня есть метод, как следует ...
Public Sub DoSomething(MyForm As IMyInterface)
MyForm.MyProperty = "x"
MyForm.ShowDialog()
End Sub
Очевидная проблема заключается в том, что компилятор не знает, что .ShowDialog есть, и если я передам свою форму в виде «MyForm As Form», он не знает, что такое «MyProperty». Я понимаю причины этого, но не как решить эту проблему. Является ли простой листинг для Формирования правильного способа решения этой проблемы?
Большое спасибо.
Вы можете, конечно, добавить интерфейс ShowDialog или Display к интерфейсу. Или даже метод GetForm. Но что будет дальше? Обычной точкой показа диалогового окна является получение данных, введенных пользователем после его показа. Поэтому вы должны объявить POCO, который хранит эти данные, и метод Boolean GetData (Poco data) начинает иметь смысл. Теперь полная информация о том, как эти данные будут получены, вы должны использовать ShowDialog при обычном использовании и макет в модульном тесте. –