Я интерфейс IDigitalState определяется какОграничение интерфейс для структур только в vb.net
Public Interface IDigitalState
ReadOnly Property Code As Integer
ReadOnly Property Name As String
End Interface
и структуру, которая реализует этот интерфейс
Public Structure DigitalState
Implements IDigitalState
Private ReadOnly mCode As Integer
Private ReadOnly mName As String
Public ReadOnly Property Code As Integer Implements IDigitalState.Code
Get
Return mCode
End Get
End Property
Public ReadOnly Property Name As String Implements IDigitalState.Name
Get
Return mName
End Get
End Property
Public Sub New(ByVal code As Integer, name As String)
mCode = code
mName = name
End Sub
End Structure
То, что я хотел сделать, это объявить переменную как нулевой тип IDigitalState. Я понимаю, почему я не могу этого сделать, потому что интерфейс может быть реализован классом, который не может быть недействительным. Есть ли способ определить интерфейс, чтобы он мог быть реализован только структурой. Я сомневаюсь, что это возможно, но подумал, что стоит посмотреть.
Возможно, вы найдете путь вокруг этого, используя generics и где T: struct, но я думаю, что вы хотите, чтобы ваш интерфейс налагал больше контроля над исполнителями, чем обычно. – hatchet