• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

限制对结构的接口只有在vb.net

vb.net 来源:Ceres 7次浏览

我有一个接口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的可空类型。我明白为什么我不能这样做,因为接口可能由一个不允许为空的类来实现。有没有一种方法来定义接口,以便它只能通过结构来实现。我怀疑这是可能的,但认为这是值得研究的。


===========解决方案如下:

不,没有办法。

但是,您可以键入。

Dim nullableIDigitalState As IDigitalState = nothing 

这将声明IDigitalState类型的变量为null。如果你在谈论Nullable<>泛型,它具有限制值类型的where限制,所以它只接受IDigitalState的结构变体。

我想念你的观点吗?


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)