C# 这个方法的参数是什么?

C# 这个方法的参数是什么?,c#,methods,arguments,rhino3d,C#,Methods,Arguments,Rhino3d,我试图基于SDK使用下面的DivideByLength方法,但我无法理解第三个参数是什么。我尝试基于此方法编写以下代码,但收到以下错误消息:错误:“Rhino.Geometry.Point3d”是一个“类型”,但用作“变量” 我认为第三个参数是指定我想要点作为输出,而不是双倍。我做错了什么 方法: Public Function DivideByLength ( _ segmentLength As Double, _ includeStart As Boolean, _

我试图基于SDK使用下面的DivideByLength方法,但我无法理解第三个参数是什么。我尝试基于此方法编写以下代码,但收到以下错误消息:错误:“Rhino.Geometry.Point3d”是一个“类型”,但用作“变量”

我认为第三个参数是指定我想要点作为输出,而不是双倍。我做错了什么

方法:

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关键字旁边指定一个变量。更多