首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

做个标题,做对的有奖

2011-12-26 
做个题目,做对的有奖classProgram{privatestringstrstr privateinti0staticvoidConvertString(strin

做个题目,做对的有奖
class   Program
        {
                private   string   str   =   "str ";
                private   int   i   =   0;
                static   void   ConvertString(string   str)
                {
                        str   =   "str   has   convert ";
                }
                static   void   ConvertString(ref   string   str)
                {
                        str   =   "str   has   convert ";
                }
                static   void   ConvertString(Program   c)
                {
                        c.str   =   "str   has   convert ";
                }
                static   void   Add(int   i)
                {
                        i++;
                }
                static   void   Add(Program   c)
                {
                        c.i++;
                }

                static   void   Main(string[]   args)
                {
                        string   str   =   "strTmp ";
                        int   i   =   20;
                        Program   c   =   new   Program();
                        Add(i);
                        Add(c);
                        Console.WriteLine(i);
                        Console.WriteLine(c.i);
                        ConvertString(str);
                        Console.WriteLine(str);
                        ConvertString(ref   str);
                        Console.WriteLine(str);
                        ConvertString(c);


                        Console.WriteLine(c.str);
                        Console.Read();
                }
        }

说下他的运行结果,别忘了说下理由哦

[解决办法]
20
1
strTmp
str has convert
str has convert

奖品拿来:)
[解决办法]
ConvertString(string str) // 虽说是按引用传递,但传的是引用的副本

static void ConvertString(ref string str) // 传引用本身,这才是真正的 C/C++ 意义上的指针传递
[解决办法]
string str = "strTmp ";
int i = 20;
Program c = new Program();
Add(i); //按值传递值类型,增加的i是Add里的局部变量i,和Main函数里的i无关
Add(c);//按值传递引用类型 增加的c和Main函数里的c指向同一对象,所以一改都改
Console.WriteLine(i);
Console.WriteLine(c.i);
ConvertString(str); // 传递的是引用的副本
Console.WriteLine(str);
ConvertString(ref str);// 传递引用本身
Console.WriteLine(str);
ConvertString(c);
Console.WriteLine(c.str);
Console.Read();
[解决办法]
考察了:
静态的概念
值类型
引用类型

热点排行