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

标签 c#

我正在尝试访问在 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/

相关文章:

c# - 在 ASP.NET 中使用 iFrame

C# 将字符串元素数组传递给 Task.Run

c# - 在调用另一个方法时调用一个方法

c# - 空引用异常 : unity3d

c# - 反射(reflection)的工作?

c# - .Net Framework 上的 clr.dll 是什么,它有什么作用?

c# - 匹配源ElasticSearch Nest中的每个字段

c# - C# 中的 SQL Server spy

c# - LINQ 到 SQL 连接

c# - 如何将数据绑定(bind)到 xamarin Android 中的 ListView ?