A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liucaifu 黑马帝   /  2011-11-4 15:02  /  1991 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
       }  
    }
Console.WriteLine(c.i);
           Console.WriteLine(str);
           Console.WriteLine(c.str);
运行出来的答案出乎意料,解释一下,谢谢!

5 个回复

倒序浏览
楼主能否把代码完整点的上传下?
回复 使用道具 举报
{:soso_e140:}不用运行就知道代码有问题
是你代码不完整?
Class1怎么自己在自己内部调用自己?
还用Main中的,string str=str,可以这样赋值?
回复 使用道具 举报
我的天哪,你这会通过编译吗?
首先,你那个分号好像是中文状态下输入的;
2.Console.WriteLine(c.i);
           Console.WriteLine(str);
           Console.WriteLine(c.str);
这几句放在类里行吗?
3 private string str = Class1.str;
这是啥意思?我真不懂
4 c.StringConvert();
这个又没传参数.......
不看了,我也不猜你的意思了,然后改了下代码,在我的VS2008反正能编译通过。至于是不是你想要的就不知道了,有问题可以发消息给我。
class Class1  {
       //private string str = Class1.str;
       private int i = 0;
       public string str = "";
       static void StringConvert(string str)  {
           str = "string being converted";
       }
       static void StringConvert(Class1 str)  {
           str.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 = "";
           Class1 c = new Class1();
           Class1.StringConvert("");
           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);

           Console.ReadKey();
       }  
    }


}
回复 使用道具 举报
先去将 IF ELSE FOR循环等这些语句写熟悉了 再来写有关面向对象的程序
回复 使用道具 举报
你想写什么?看不懂。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马