gpt4 book ai didi

c# - 这个。和列表

转载 作者:太空狗 更新时间:2023-10-30 00:52:00 25 4
gpt4 key购买 nike

我无法理解如何初始化对象列表并将其与类内部的方法一起使用。我了解 List 的机制,但不知道如何在方法中初始化它并在以后使用它。

例如,我想有一个在构造时创建List的类。然后,我想使用该类的方法将元素添加到列表中。列表中的元素是由 SolidWorks API 定义的对象。

因此,为了构建列表,我使用了:

public class ExportPoints : Exporter
{
public List<SldWorks.SketchPoint> listOfSketchPoints;

public ExportPoints(SldWorks.SldWorks swApp, string nameSuffix) :
base(swApp, nameSuffix)
{
List<SldWorks.SketchPoint> listOfSketchPoints = new List<SldWorks.SketchPoint>();
}

public void createListOfFreePoints()
{
try
{
//imagine more code here
this.listOfSketchPoints.Add(pointTest);
}
catch (Exception e)
{
Debug.Print(e.ToString());
return;
}
}

这在执行期间失败,就好像 listOfSketchPoints 从未初始化为 List

所以,我尝试了一个hack 并且成功了:

public ExportPoints(SldWorks.SldWorks swApp, string nameSuffix) :
base(swApp, nameSuffix)
{
List<SldWorks.SketchPoint> listOfSketchPoints = new List<SldWorks.SketchPoint>();
this.listOfSketchPoints = listOfSketchPoints;
}

这种方法创建了我想要的行为。但是,我似乎不明白为什么这是必要的。

  • 是否应该可以使用构造函数“初始化”作为对象属性的列表?
  • 为什么需要创建列表,然后将新列表的指针分配给您的属性?

最佳答案

你必须初始化列表,最好在构造函数中。但是您正在那里创建一个本地列表。所以替换

List<SldWorks.SketchPoint> listOfSketchPoints  = new List<SldWorks.SketchPoint>();

this.listOfSketchPoints = new List<SldWorks.SketchPoint>();

我很确定您现在知道为什么要仔细命名您的变量 ;-)

关于c# - 这个。和列表<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com