在 Visual Basic 中,我想创建一个接口(interface),其中包含一个返回实现类的对象的函数。那就是
public interface I
function maker as ???
end interface
public class X
implements I
function maker as X
return new X()
end function
end class
public class Y
implements I
function maker as Y
return new Y()
end function
end class
有什么办法可以表达吗?我想我总是可以这么说maker
返回 I
而不是X
或Y
,但随后调用者将不得不转换它。我想将接口(interface)定义为
public interface I(of ii as I)
但是这样做的全部目的是为了让我可以创建一个使用 of I
的泛型类。 ,如果我这么说,那么编译器坚持无限回归 of I(of I(of I...
最佳答案
不完全是,但你可以这样做:
Public Interface I(Of T)
Function Maker() As T
End Interface
Public Class X
Implements I(Of X)
Public Function Maker() As X Implements I.Maker
Return New X()
End Function
End Class
或者,像这样:
Public Interface I
Function Maker() As I
End Interface
Public Class X
Implements I
Public Function Maker() As I
Return New X()
End Function
End Class
这些选项都不会强制派生类返回其自己类型的实例,但它们允许您以这种方式实现它。
关于vb.net - 如何在 vb 通用接口(interface)中创建一个返回实现类实例的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13748909/