-7

我有一堂课的清单。我需要从另一个类填充列表。然后我需要访问列表中的一两个其他类。我不想使用静态列表。这是如何在 C# 中完成的。我已经尽力了。但并不成功。任何人都可以举个例子吗?

4

3 回答 3

3

使用 get 我会建议

这是列表所在的位置

class A
{

    private list<Objects> myList = new list<Objects>();

    public list<Objects> getList()
    {
        return myList;
    }
}

这是您要使用它的地方

class B
{
    private list<Objects> myNewList = new list<Objects>();
    A a = new A();

    public void setList()
    {
        myNewList = a.getlist();
    }
}

像这样的东西。如果在不同的文件中,请记住相同的命名空间以便类相互了解

于 2012-11-14T13:05:31.263 回答
2

这听起来像是公共财产的工作。

// I'm assuming a List of strings, fix accordingly
public class A
{
    //Not autoimplemented to ensure it's always initialized
    private List<string> items = new List<string>();
    public List<string> Items
    {
        get { return items; }
        set { items = value; }
    }
}

public class AnyoneElse
{
     void someMethod()
     {
         A someVar = new A();

         someVar.Items.Add("This was added from outside");

         MessageBox.Show(someVar.Items.First());
     }
}

应该适当地调整访问修饰符(它们主要取决于您的命名空间结构。此外,类和消费者是否在同一个程序集中?无论如何,这一点应该足够清楚)。

于 2012-11-14T13:15:21.703 回答
0

这是您需要的基本示例

public class YourOriginalClass
{
    /// <summary>
    /// The list you want to access
    /// </summary>
    public List<YourType> YourList { 
       get; 
       set; 
    }
}

// Here another class where you can use the list
public class YourSecondClass
{
    public void EditMyList()
    {
       YourOriginalClass test = new YourOriginalClass();
       test.YourList = new List<YourType>();
       // then you can populate it
    }
}
于 2012-11-14T13:10:51.107 回答