C# 这个方法的参数是什么?
我试图基于SDK使用下面的DivideByLength方法,但我无法理解第三个参数是什么。我尝试基于此方法编写以下代码,但收到以下错误消息:错误:“Rhino.Geometry.Point3d”是一个“类型”,但用作“变量” 我认为第三个参数是指定我想要点作为输出,而不是双倍。我做错了什么 方法:C# 这个方法的参数是什么?,c#,methods,arguments,rhino3d,C#,Methods,Arguments,Rhino3d,我试图基于SDK使用下面的DivideByLength方法,但我无法理解第三个参数是什么。我尝试基于此方法编写以下代码,但收到以下错误消息:错误:“Rhino.Geometry.Point3d”是一个“类型”,但用作“变量” 我认为第三个参数是指定我想要点作为输出,而不是双倍。我做错了什么 方法: Public Function DivideByLength ( _ segmentLength As Double, _ includeStart As Boolean, _
Public Function DivideByLength ( _
segmentLength As Double, _
includeStart As Boolean, _
<OutAttribute> ByRef points As Point3d() _
) As Double()
代码:
您需要新的Point3d而不是Point3d您需要实例化Point3d而不是传递Point3d
Point3d objPoint3d = new Point3d();
pts.Add(crv[i].DivideByLength(nb, true, out objPoint3d));
您需要新的Point3d而不是Point3d您需要实例化Point3d而不是传递Point3d
Point3d objPoint3d = new Point3d();
pts.Add(crv[i].DivideByLength(nb, true, out objPoint3d));
看起来这就是你要找的:
List<Point3d[]> pts = new List<Point3d[]>();
for(int i = 0; i < crv.Count;i = i + 2)
{
Point3d[] pointArray;
crv[i].DivideByLength(nb, true, out pointArray);
pts.Add(pointArray);
}
有关更多信息,请参阅。看起来这就是您要查找的内容:
List<Point3d[]> pts = new List<Point3d[]>();
for(int i = 0; i < crv.Count;i = i + 2)
{
Point3d[] pointArray;
crv[i].DivideByLength(nb, true, out pointArray);
pts.Add(pointArray);
}
有关更多信息,请参阅。请尝试在c中使用:
List<Point3d[]> ptlist = new List<Point3d[]>();
Point3d[] pts;
for(int i = 0; i < crv.Count;i = i + 2)
{
crv[i].DivideByLength(nb, true, out pts);
ptlist.add(pts);
}
使用new没有错,但没有用,因为函数将数组作为输出返回。尝试在c中使用:
List<Point3d[]> ptlist = new List<Point3d[]>();
Point3d[] pts;
for(int i = 0; i < crv.Count;i = i + 2)
{
crv[i].DivideByLength(nb, true, out pts);
ptlist.add(pts);
}
使用new不是错误的,但是没有用,因为函数将数组作为输出返回。我想这可能就是您想要的。out参数是一个Point3d对象数组,看起来您希望获得所有返回数组中所有对象的列表。因此,您将有您的列表,并需要添加范围的结果
List<Point3d> pts = new List<Point3d>();
for(int i = 0; i < crv.Count;i = i + 2)
{
Point3d[] arr;
crv[i].DivideByLength(nb, true, out arr);
pts.AddRange(arr);
}
我想这可能就是你想要的。out参数是一个Point3d对象数组,看起来您希望获得所有返回数组中所有对象的列表。因此,您将有您的列表,并需要添加范围的结果
List<Point3d> pts = new List<Point3d>();
for(int i = 0; i < crv.Count;i = i + 2)
{
Point3d[] arr;
crv[i].DivideByLength(nb, true, out arr);
pts.AddRange(arr);
}
您不需要实例化变量。out子句表示变量将在方法内部实例化。另外,它是一个数组,不是Point3d的单个实例,因此它应该是Point3d[],您不需要实例化变量。out子句表示变量将在方法内部实例化。另外,它是一个数组,不是Point3d的一个实例,所以它应该是Point3d[]。是的,我刚刚发现我对VB的不熟悉导致我首先浏览了一下它。谢谢。是的,我刚发现我对VB的不熟悉导致我一开始就浏览了一下。谢谢。为了记录在案,如果需要的话,可以很容易地将列表展平+为了更好的观察,我用了一个双关语。列表可能是更好的选择,因此您可以在以后选择是否要展平。对于记录,如果需要展平列表,则很容易+为了更好的观察,我用了一个双关语。列表可能是更好的选择,因此您可以在以后选择是否展开。您必须在out关键字旁边指定一个变量。在这里,您必须在out关键字旁边指定一个变量。更多