gpt4 book ai didi

c# - 无法从另一个类访问 List

转载 作者:行者123 更新时间:2023-11-30 17:42:57 25 4
gpt4 key购买 nike

我正在尝试访问在 ImageCollection 类中声明的列表。这是代码。

class ImageCollection
{
public List<string> imgCollection = new List<string>();

public void addImgCollection(string path)
{
imgCollection.Add(path);
}

public List<string> getList()
{
return imgCollection;
}
}

并使用此代码将图像路径添加到 AutoClass 的 imgCollection 中。

ImageCollection imgcoll = new ImageCollection();
imgcoll.addImgCollection(img1);
imgcoll.addImgCollection(img2);

但是,当我从 MainForm 访问列表时:

ImageCollection image = new ImageCollection();
List<string> imgcol = image.getList();

结果为空。我的代码有什么问题?

最佳答案

在这里您创建了 ImageCollection 的实例。这就是为什么它的属性 imgCollection 具有默认值(即 null ):

ImageCollection image = new ImageCollection();
List<string> imgcol = image.getList();

我相信您尝试做的是:

public class AutoClass 
{
public static ImageCollection imgcol1 = new ImageCollection();

// somewhere in your AutoClass:
imgcoll.addImgCollection(img1);
imgcoll.addImgCollection(img2);
}

然后你可以从你的 MainForm 类做:

// copies collection to imgcol (therefore creates a new collection with samve values)
List<string> imgcol = AutoClass.imgcol1.imgCollection.ToList();

// saves reference to ImgCollection collection to imgcol variable (not copying anything)
List<string> imgcol = AutoClass.imgcol1.imgCollection;

如果你不想使用静态属性,你可以使用实例属性来代替:

public class AutoClass 
{
public ImageCollection imgcol1 = new ImageCollection();

// somewhere in your AutoClass:
imgcoll.addImgCollection(img1);
imgcoll.addImgCollection(img2);
}

在您的 MainForm 中:

public partial class MainForm : Form
{
AutoClass ac = new AutoClass();

...

void MyMethod
{
List<string> imgcol = ac.imgcol1.imgCollection;
// (you don't really need this GetList method of AutoClass at all)
}
}

关于c# - 无法从另一个类访问 List<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31556753/

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