如何在C#中实现对arrayList的引用? 现在又ArrayList al,编写一个函数fun(),函数的参数是arrayList,实现对al的即时更改。是不是不能用 ref 啊 ?对于其他数据类型,例如:doDouble(ref mynum); static void doDouble( ref double mynum),就可以。大虾帮忙指点 !!怎么办 ?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考 public static void Main(string[] args) { ArrayList al = new ArrayList(); al.Add(1); al.Add(2); fun(ref al); } private static void fun(ref ArrayList all) { all.Add(3); for (int i = 0; i < all.Count; i++) { Console.WriteLine(all[i]); } } static void Main(string[] args) { ArrayList arr = new ArrayList(); arr.Add(1); arr.Add(2); arr.Add(3); Console.WriteLine("Old ArrayList:"); for (int i = 0; i < arr.Count; i++) { Console.WriteLine("arr[" + i.ToString() + "]: " + arr[i].ToString()); } ChangeArr(ref arr); Console.WriteLine("Changed ArrayList:"); for (int i = 0; i < arr.Count; i++) { Console.WriteLine("arr[" + i.ToString() + "]: " + arr[i].ToString()); } Console.ReadLine(); } private static void ChangeArr(ref ArrayList al) { for (int i = 0; i < al.Count; i++) { al[i] = (int)al[i] + 10; } } public static void Main(string[] args) { ArrayList al = new ArrayList(); al.Add(1); al.Add(2); fun(ref al); for (int i = 0; i < al.Count; i++) { Console.WriteLine(al[i]); } } private static void fun(ref ArrayList all) { all.Add(3); for (int i = 0; i < all.Count; i++) { Console.WriteLine(all[i]); } }123123请按任意键继续. . . ArrayList 本身就是引用类型,要用Ref做什么?????? 之所以你看到 static void doDouble( ref double mynum)是因为mynum是值类型,对值类型如果不用Ref或out来进行传地址的话,那么函数体中只是这个值类型的一个拷贝的操作,值本身不会改变 你们有没有开发过这样的系统? Winform导入导出ACCESS数据 c# winrar问题 求放大图片的代码 各位前辈大家好~请问如何实现通过点击不同的treeview节点~在右侧的的表格中将相应的行显示在Gridview的最上方 C# 播放音乐 来交流一下,代码导航吧,在VS2005中. xml字符串 如何清空代理。 请问:如何解析ip 地址? 外键关系问题 三个菜鸟级问题
public static void Main(string[] args)
{
ArrayList al = new ArrayList();
al.Add(1);
al.Add(2);
fun(ref al);
} private static void fun(ref ArrayList all)
{
all.Add(3);
for (int i = 0; i < all.Count; i++)
{
Console.WriteLine(all[i]);
}
}
{ ArrayList arr = new ArrayList();
arr.Add(1);
arr.Add(2);
arr.Add(3); Console.WriteLine("Old ArrayList:"); for (int i = 0; i < arr.Count; i++)
{ Console.WriteLine("arr[" + i.ToString() + "]: " + arr[i].ToString());
} ChangeArr(ref arr); Console.WriteLine("Changed ArrayList:"); for (int i = 0; i < arr.Count; i++)
{
Console.WriteLine("arr[" + i.ToString() + "]: " + arr[i].ToString());
} Console.ReadLine();
}
private static void ChangeArr(ref ArrayList al)
{
for (int i = 0; i < al.Count; i++)
{
al[i] = (int)al[i] + 10;
}
}
{
ArrayList al = new ArrayList();
al.Add(1);
al.Add(2);
fun(ref al);
for (int i = 0; i < al.Count; i++)
{
Console.WriteLine(al[i]);
}
} private static void fun(ref ArrayList all)
{
all.Add(3);
for (int i = 0; i < all.Count; i++)
{
Console.WriteLine(all[i]);
}
}
1
2
3
1
2
3
请按任意键继续. . .
ArrayList 本身就是引用类型,要用Ref做什么??????
是因为mynum是值类型,对值类型如果不用Ref或out来进行传地址的话,那么函数体中只是这个值类型的一个拷贝的操作,值本身不会改变