';半径';不是VB.NET中的参数

';半径';不是VB.NET中的参数,vb.net,parameters,Vb.net,Parameters,使用NuGet库 自动完成显示一个参数: radius:= 但当我完成这一行时,看起来是这样的: Dim result = tree.Nearest(tn.Position, radius:=3.1) 我得到一个错误: BC30272“radius”不是“Public重载函数最近(位置为Double(),邻居为整数)作为KDTreeNodeCollection(属于KDTreeNode(属于Double))”的参数 我以前从未遇到过这种情况。可能是什么问题 编辑:回答评论中的问题: @

使用NuGet库

自动完成显示一个参数:

radius:=

但当我完成这一行时,看起来是这样的:

 Dim result = tree.Nearest(tn.Position, radius:=3.1)
我得到一个错误:

BC30272“radius”不是“Public重载函数最近(位置为Double(),邻居为整数)作为KDTreeNodeCollection(属于KDTreeNode(属于Double))”的参数

我以前从未遇到过这种情况。可能是什么问题


编辑:回答评论中的问题: @格斯伯格问:


它应该是双精度的,而不是十进制的。Is Dim result=您输入的实际代码 正在运行,或者您实际上是否为结果声明了类型?做 如果不提供参数名,它会调用正确的重载吗

双精度与十进制:

Dim result As KDTreeNodeCollection(Of KDTreeNode(Of Integer)) = tree.Nearest(query, Convert.ToDouble(2.00003))
以下操作也不起作用:

    Dim query = New Double() {6, 6, 6}
    Dim radius As Double = 2.000014
    Dim result = tree.Nearest(query, radius)
我得到的函数使用int32作为第二个参数,因此在这种情况下,结果仅限于2。它应该返回20

关于Dim结果=。。。我试过两种方法:

    Dim result = tree.Nearest(query, radius)
    'and
    Dim result As KDTreeNodeCollection(Of KDTreeNode(Of Integer)) = tree.Nearest(query, radius)

这两种方法都不管用。

显然,你最后打电话的不是我,而是我。您是否在对象浏览器中看到后一个重载?如果使用
3.1#
,会有什么不同吗?第二个参数接受一个
整数
,只需传递一个
整数
,而不是双精度,您也不需要名称。正如错误所述,没有一个参数具有该名称,它的
邻居
@GSerg似乎就是这样。我确实在对象浏览器中看到后者重载。它位于KDTree继承的KDTreeBase中。使用3.1#不起作用,也不能转换.ToDecimal(3.1)。它应该是双精度的,而不是十进制的。
Dim result=
是您正在运行的实际代码,还是您确实为
result
声明了类型?如果不提供参数名,它会调用正确的重载吗?请尝试创建一个新的测试项目,添加该包,调用该方法,然后查看是否发生相同的情况。在一个测试项目中隔离问题通常是发生类似这种看似奇怪的事情时的第一步。