-7

1つのクラスにリストがあります。そして、別のクラスからリストを作成する必要があります。次に、他の 1 つまたは 2 つのクラスのリストにアクセスする必要があります。静的リストを使用したくありません。これは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 に答える