私は大学の外で初めてのプロジェクトに取り組んでいます。私は2つのクラスを持っています。最初のものには、配列リストに文字列を追加するメソッドがあります。2 番目のクラスでは、前のクラスのメソッドから arrayList にアクセスし、その要素を取得したいと考えています。
どうすればそれができますか?助けてくれてありがとう。
私は大学の外で初めてのプロジェクトに取り組んでいます。私は2つのクラスを持っています。最初のものには、配列リストに文字列を追加するメソッドがあります。2 番目のクラスでは、前のクラスのメソッドから arrayList にアクセスし、その要素を取得したいと考えています。
どうすればそれができますか?助けてくれてありがとう。
最初のクラスで ArrayList を静的プロパティとして公開すると、2 番目のクラスからそのプロパティにアクセスできます。
public class First
{
public static ArrayList MyList { get; set; }
}
public class Second
{
public void SomeMethod()
{
//First.ArrayList will give you access to that class
}
}
最善の方法は、ArrayList をまったく使用しないことです(.Net 2.0 以降を使用している場合) 代わりに、タイプ セーフなListを使用します。
.NET 1.1ArrayLists
を使用している場合を除き、強く型付けされたものを避けて使用しList<T>
ます。
クラス 1でメソッドを作成する必要があります。クラス 2 がある場合、またはクラス 1 のインスタンスがある場合public
は、クラス 2 からアクセスできます。static
例えば:
public class Class1{
public List<String> getList()
{
// create the list and return it
}
}
public class Class2{
Class1 firstClass{ get;set; }
void foo()
{
// now you can access the List<String> of class1 via it's instance
List<String> list = firstClass.getList();
foreach(String s in list)
{
// do something
}
}
}
最良のオプションは、次のように、配列リストを公開する読み取り専用プロパティを使用することです。
class MyClass
{
private ArrayList FArrayList;
public ArrayList ArrayList { get { return FArrayList; } }
...
これを試して..
public class First
{
public ArrayList MyList;
public First()
{
MyList = new ArrayList();
}
public void AddString(string str)
{
MyList.Add(str);
}
}
public class Second
{
public void someMethod()
{
First f = new First();
f.AddString("test1");
f.AddString("test2");
f.AddString("test3");
ArrayList aL = f.MyList; // you will get updated array list object here.
}
}