当前位置:编程学习 > C#/ASP.NET >>

难题 请高手进入

若我定义了这样一些变量
string str1="aa",str2="bb"……strN="99";//这们的N个string 对象
在定义方法中改变这此对象的值
private void change(ref string s1,ref string str2)//假若上面的N=2
{
  s1="11";s2="55";
}
private void change(ref string s1,ref string str2,ref string str3)//假若上面的N=3
{
  s1="11";s2="55";s3="88";
}
调用方法后str1="11";str2="55";str3="88";(不需要其它多余的语句)
但是我只想定义一个方法,无能N是什么整数都能满足要求 --------------------编程问答-------------------- string 数组 --------------------编程问答-------------------- string[] ss=new string[]{'aa','bb'}

private void change( string[] s1) --------------------编程问答-------------------- public void change(params string[] args)
{
    foreach(string para in args)
    {}
}
采用参数数组应该可以解决LZ的问题 --------------------编程问答-------------------- 楼上的方法可行 --------------------编程问答-------------------- 以上各位都弄错了我的意思 现在修改如下

若我定义了这样一些变量 
string str1="aa",str2="bb"……strN="99";//这们的N个string 对象 
在定义方法中改变这此对象的值 
private void change(ref string s1,ref string str2)//假若上面的N=2 

  s1="11";s2="55"; 

private void change(ref string s1,ref string str2,ref string str3)//假若上面的N=3 

  s1="11";s2="55";s3="88"; 

调用方法 
 change(ref str1,ref str2,ref str3);//此时我就可以使用str2,str1,str3中的新值了,紧接着下面的语句
 string str=str1+str2+str3;//这时str的值为 "115588"
 
但是我只想定义一个方法,无能N是什么整数都能满足要求

--------------------编程问答-------------------- 这个是不是lz想要的?
private void Change(string[] str, params int[] index)
{
for (int i=0;i<index.Length;i++)
{
str[index[i]]=GetValue(i);
}
}

private string GetValue(int index){}
--------------------编程问答-------------------- lz的想法就有问题,C#是编译型的语言,而不是像动态语言,所以在编译的时候,方法的参数就固定了,而你却想参数能动态变化,这种想法就不对。
上面的朋友给出的解决办法可行。 --------------------编程问答-------------------- 俺不是高手 走错了  溜。。。 --------------------编程问答-------------------- LZ可以考虑用递归来实现,或者向用循环吧特定名字的变量读出来加. --------------------编程问答-------------------- 就用上面的数组啊,在简单不过了
如mapserver所说,楼主的出发点就不对 --------------------编程问答-------------------- 楼上说的对     就用数组向里面传参数就行了 --------------------编程问答-------------------- 楼上说的对     就用数组向里面传参数就行了 --------------------编程问答-------------------- 以上各位都弄错了我的意思 现在修改如下 

若我定义了这样一些变量  
string str1="aa",str2="bb"……strN="99";//这们的N个string 对象  
在定义方法中改变这此对象的值  
private void change(ref string s1,ref string str2)//假若上面的N=2  
{  
  s1="11";s2="55";  
}  
private void change(ref string s1,ref string str2,ref string str3)//假若上面的N=3  
{  
  s1="11";s2="55";s3="88";  
}  
调用方法  
 change(ref str1,ref str2,ref str3);//此时我就可以使用str2,str1,str3中的新值了,紧接着下面的语句 
 string str=str1+str2+str3;//这时str的值为 "115588" 
  也就是说我向方法传N个string 对象的引用
但是我只想定义一个方法,无能N是什么整数都能满足要求 
--------------------编程问答-------------------- 唉,典型的自己不知道自己问什么的人,你都发了三次,还说“以上各位都弄错了我的意思”
可见你表达能力有问题啊
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,