using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace @enum
{
    class Program
    {
        static void swap(int x, int y)
        {
            int temp;
            temp = x;
            x = y;
            y = temp;
        }
        static void Main(string[] args)
        {
            int a = 10;
            int b = 20;
            Console.WriteLine("交换前,a={0},b={1}" , a, b);
            swap(a,b);
            Console.WriteLine("a={0},b={1}",a, b);
        }
    }
}
这上面的"a={0},b={1}" 能不写吗?为什么一定要写?求老师解答  谢谢!!!!

解决方案 »

  1.   

    不写也可以,但输出来的内容就不是这样的了,参见
    http://msdn.microsoft.com/zh-cn/library/system.console.writeline%28VS.80%29.aspx方法的参数含义
      

  2.   

    {0}和{1}是占位符,意思是把后面的参数a和b按顺序填到这里,你当然可以不这么写,直接写:Console.WriteLine("交换前,a="+a+",b="+b);也是一样的,最基本的语法,赶紧搞清楚吧
      

  3.   


    我不是这个意思,但是我不写"a={0},b={1}"这个  结果就出不来,在as3.0中是直接可以出来的。
      

  4.   

    作为一个刚看了一个星期的传智播客视频的菜鸟来尝试回答一下:你的意思是不是最后改成:Console.WriteLine(a, b);? 
    这样肯定不对啊,Console.WriteLine()这个方法没有一下输出2个参数的,改成Console.WriteLine(a+b);这样,将2个字符串合成一个就Ok了。
    PS:类里面定义的方法也不能交换a.b的值啊
      

  5.   

    字符串可以相加的啊 结果就是1020,可以不用占位符,写成console.write(a+"和"+b);占位符的好处应该就是很方便。我也刚开始学啊 很多地方暂时不能理解的 可以先记着它就是这么用的。深究起来效率低,还会有很强的挫败感。等会的多了,很多地方会自然而然的明白了。。