.net试题求高人详解这个题的答案

[复制链接]
查看11 | 回复4 | 2008-10-28 08:40:01 | 显示全部楼层 |阅读模式
题目是:
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);

}

}
答案是:
10
21
0
str
string being converted.
请高手详细说明一下答案怎么来的?

回复

使用道具 举报

千问 | 2008-10-28 08:40:01 | 显示全部楼层
首先引用1楼Add(i1); //值传递 AddWithRef(ref i2); //引用传递 Add(c.i); //值传递 StringConvert(str); //值传递 StringConvert(c); //引用传递 按f11可以逐步调试.答二楼,这里的静态方法并没有直接调用实例变量....
回复

使用道具 举报

千问 | 2008-10-28 08:40:01 | 显示全部楼层
我大体看了看,印象中好像静态方法只能调用静态变量什么的,应该是这里的问题,呵呵,太晚了,脑子不大灵活,仔仔细细的看不进去,不好意思(有点YY。。- -)...
回复

使用道具 举报

千问 | 2008-10-28 08:40:01 | 显示全部楼层
Add(i1); //值传递AddWithRef(ref i2); //引用传递Add(c.i); //值传递StringConvert(str); //值传递StringConvert(c); //引用传递...
回复

使用道具 举报

千问 | 2008-10-28 08:40:01 | 显示全部楼层
唉 你这个问题没价值 回答是浪费时间...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行