C#问题!HELP!

[复制链接]
查看11 | 回复2 | 2008-12-22 13:56:57 | 显示全部楼层 |阅读模式
写出程序的输出结果
class Class1{
private string str="Class1.str";
private int i=0;
static void StringConvert(string str)
{str="string being converted";
}
static void StringConvert(Class1 c)
{c.str="string being converted";
}
static void Add(int i)
{i++;
}
static void AddWithRef(ref int i)
{i++;
}
static void Main()
{int i1=10;
int i2=20;
string str="str";
Class1 c=new Class1();
Add(i1);
AddWithRef(ref i2);
Add(c.i);
StringConvert(str);
StringConvert(c);
Console.WriteLine(i1)
Console.WriteLine(i2)
Console.WriteLine(c.i)
Console.WriteLine(str)
Console.WriteLine(c.str)
}
}
我写的是:
11
20
1
string being converted
string being converted
对不对啊???为什么???

回复

使用道具 举报

千问 | 2008-12-22 13:56:57 | 显示全部楼层
10//这个是传值,是将i的值复制一份然后传进函数,函数里面对i的操作不影响外面的i的值21//这个是传引用,函数里面操作i改变的直接就是i的值0//和第一个一样str//和第一个一样string being converted//对于参数是一个类的对象来说,传的都是引用,所以这里直接改变c里面的str的值...
回复

使用道具 举报

千问 | 2008-12-22 13:56:57 | 显示全部楼层
10210strstring being converted...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行