public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class mylist
{
public List<string> list1 = new List<string>();
}
class mylist2
{
public List<string> list2 = new List<string> { "aton", "electron" };
public void listconvert()
{
mylist ml = new mylist();
ml.list1.AddRange(list2);
MessageBox.Show("do you kn ow");
}
}
private void button1_Click(object sender, EventArgs e)
{
mylist2 ml2 = new mylist2();
ml2.listconvert();
mylist ml = new mylist();
for (int i = 0; i < ml.list1.Count; i++)
{
textBox1.AppendText(ml.list1[i].ToString() + "\n");
}
}
}
2 に答える
0
これらの行に絞り込みます。
mylist2 ml2 = new mylist2();
ml2.listconvert();
mylist ml = new mylist();
そのスニペットの 3 行目は、そのスニペットの 2 行目とは異なるタイプのインスタンスで動作していますmylist
。次に、変数のインターレーターに進むml
と、そのリストはまだ何もしていません。
多分あなたはこれが欲しい:
public class mylist
{
public List<string> list1 = new List<string>();
}
public class mylist2
{
public List<string> list2 = new List<string> { "aton", "electron" };
public void listconvert(List<string> other)
{
other.AddRange(list2);
//MessageBox.Show("do you kn ow");
}
}
private void button1_Click(object sender, EventArgs e)
{
mylist ml = new mylist();
mylist2 ml2 = new mylist2();
ml2.listconvert(ml);
for (int i = 0; i < ml.list1.Count; i++)
{
textBox1.AppendText(ml.list1[i].ToString() + "\n");
}
}
于 2015-01-29T03:03:14.520 に答える
0
2 つの問題があるようです。
まず、このコードはリストを作成しますが、参照をどこにも保存しないため、実質的に失われます。
public void listconvert()
{
mylist ml = new mylist();
ml.list1.AddRange(list2);
MessageBox.Show("do you kn ow");
}
次に、このコードは空のリストを作成し、この空のリストの要素をテキスト ボックスに追加しようとします。
mylist ml = new mylist();
for (int i = 0; i < ml.list1.Count; i++)
{
textBox1.AppendText(ml.list1[i].ToString() + "\n");
}
おそらく、コードを次のように変更する必要があります。
class mylist2
{
public List<string> list2 = new List<string> { "aton", "electron" };
public mylist listconvert()
{
mylist ml = new mylist();
ml.list1.AddRange(list2);
MessageBox.Show("do you kn ow");
return ml;
}
}
private void button1_Click(object sender, EventArgs e)
{
mylist2 ml2 = new mylist2();
mylist ml = ml2.listconvert();
for (int i = 0; i < ml.list1.Count; i++)
{
textBox1.AppendText(ml.list1[i].ToString() + "\n");
}
}
于 2015-01-29T03:06:53.590 に答える