1
有没有什么方法可以在VB.NET中定义一个只接受单打或双打的Generic?我可以定义一个可以采用多种可能值类型的泛型吗? (VB.NET)
我尝试下面的东西,依据是什么,我在网上找到,但没有编译:
Dim target As Nullable(Of {Single, Double})
Dim target As Nullable(Of T As {Single, Double})
Dim target As Nullable(Of T {Single, Double})
Dim target As Nullable(Of Single, Double)
Dim target As Nullable(Of T As Single, Double)
我希望指定target
可以是一个或仅Double?
。
是的,缺乏基础的整体和数字类型是一个真正的痛苦;我知道他们正在考虑为每个连接添加未来版本。我没有想过按照你的建议使用多个函数调用,......猜测这可能是最好的想法。只是希望以某种方式不必编写2,3或更多的所有具有相同签名的函数,除了通用参数。 – eidylon 2011-05-04 17:09:23
有一个重新思考,并希望我的新答案是有道理的。 – Jodrell 2011-05-04 17:16:46
恩,没有。 'T'为{Double,Single}'会描述一个'T',它是** BOTH **一个'Double'和一个'Single'同时 - 当然这是不可能的。 “多重约束”条款要求所有约束都为真(“和”),并不意味着任何约束都为真(“或”)。所以正确的答案是“不,没有办法定义一个通用的约束,可以采用几种可能的数字类型。”这与使用Nullable无关。当人们想要创建一个CLASS(T)而不是一个方法或函数时,这尤其令人讨厌 - .Net缺少'Numeric'基类型。 – ToolmakerSteve 2014-10-22 19:50:58