我正在尝试为我正在编写的硬件接口创建一些抽象级别,并且想知道是否有某种方式可以将多个接口分配为单个变量类型
想到的唯一方法是创建一个可以使用IDisposable和IDataEndPoint的抽象类,然后将其用作我的变量类型和我的端点的基础
GoogleFu,Stack Overflow和MSDN havnt提供了任何其他想法
干杯!
即
Public Class A
Impliments IDisposable
Public ReadOnly DataEndpoint as IDataEndpoint, IDisposable <---- something like this
Protected Overridable Sub Dispose(disposing as Boolean)
if disposing then
DataEndPoint.Dispose
end if
End Sub
Public Sub Dispose() Impliments IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
End Class
答案 0 :(得分:2)
为什么不在需要时使用类型DataEndoint
来实现接口和DirectCast
属性到所需的接口?
Public Class DataEndpoint
Implements IDataEndpoint, IDisposable
'Implementation ...
End Class
Public Class A
Implements IDisposable
Public ReadOnly DataEndpoint as DataEndpoint
Protected Overridable Sub Dispose(disposing as Boolean)
if disposing then
DirectCast(DataEndPoint, IDisposable).Dispose
end if
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
End Class
答案 1 :(得分:1)
如果界面中没有定义关系:基本上没有。除非A
是通用类型(例如T
),T
有多个约束,且字段类型为T
。在这种情况下不太合适。
我只需输入字段作为有趣的类型(IDataEndpoint
),然后将处理处理为(用C#术语):
var disp = DataEndPoint as IDisposable;
if(disp != null) disp.Dispose();