黑马程序员技术交流社区

标题: 基础题 [打印本页]

作者: liucaifu    时间: 2011-11-4 15:02
标题: 基础题
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);
运行出来的答案出乎意料,解释一下,谢谢!
作者: 黄朝辉    时间: 2011-11-4 16:09
楼主能否把代码完整点的上传下?
作者: 李荣壮    时间: 2011-11-4 16:46
{:soso_e140:}不用运行就知道代码有问题
是你代码不完整?
Class1怎么自己在自己内部调用自己?
还用Main中的,string str=str,可以这样赋值?
作者: 夏雪锐    时间: 2011-11-4 17:42
我的天哪,你这会通过编译吗?
首先,你那个分号好像是中文状态下输入的;
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();
       }  
    }


}

作者: 郑文    时间: 2011-11-5 02:52
先去将 IF ELSE FOR循环等这些语句写熟悉了 再来写有关面向对象的程序
作者: 宋天琪    时间: 2011-11-5 09:27
你想写什么?看不懂。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2