假设我有以下代码:
private void btnArr1(object sender, EventArgs e)
{
wr("test string1","st1");
}
private void btnArr2(object sender, EventArgs e)
{
wr("test string2","st2");
}
private void btnArr3(object sender, EventArgs e)
{
wr("test string3","st3");
}
private void wr(String str, String st){
switch(st){
case "st1":{
st1.Add(str);
break;
}
case "st2":{
st2.Add(str);
break;
}
case "st3":{
st3.Add(str);
break;
}
}
}
以某种方式可以最小化该代码吗?
例如将“st1.Add(str)”更改为“st”.Add(str)。
这些按钮之间的唯一区别是存储信息的列表名称。其他一切都是平等的。
答案 0 :(得分:2)
您需要使用Dictionary<String, List<String>>
。
在构造函数(或其他初始化区域)中,为您需要的每个键添加new List<string>()
。
然后你可以写
dict[someKey].Add(something);
答案 1 :(得分:1)
如果这些都在同一个班级,你可以使用:
private void btnArr1(object sender, EventArgs e)
{
st1.Add("test string1");
}
private void btnArr2(object sender, EventArgs e)
{
st2.Add("test string2");
}
private void btnArr3(object sender, EventArgs e)
{
st3.Add("test string3");
}
如果这对您不起作用,请详细说明为什么它不起作用。
答案 2 :(得分:1)
很难说不知道st1
,st2
等的类型,但是这样的话呢?
private void btnArr1(object sender, EventArgs e)
{
wr("test string1",st1);
}
private void btnArr2(object sender, EventArgs e)
{
wr("test string2",st2);
}
private void btnArr3(object sender, EventArgs e)
{
wr("test string3",st3);
}
private void wr(String str, List<string> st){
st.Add(str);
}