using System;public class A
{
   public void Main()
   {
     int i=0;
     x(i,i++);
    }
   
  public x(int m, int n)
  { 
     Console.Write("{0},{1}");
   }
}这个程序的输出结果是什么?(这个问题不难,难的是下一个)为什么结果是这样?(要求"引经据典",在C#语言规范里找到关于函数参数求值顺序的说明)

解决方案 »

  1.   

    using System;public class A
    {
    public void Main()
    {
    int i=0;
    x(i,i++);
    }public x(int m, int n)
    {
    Console.Write("{0},{1}",m,n);刚才少写了几个字母...
    -_-;
    }
    }
      

  2.   

    你认为你的程序可以输出么??我不这么认为,我觉得编译的通似乎都比较困难public x(int m, int n)
    {
    ...
    }
    这是个什么东西啊??
      

  3.   

    你自己试一下不就行了,何必来问。
    结果是
    0,0
    ++运算符放在后面就是先用i,用完再加,和C++一样。运算符优先级低。不用“引经据典”了吧,妇孺皆知。
    x前边还少些个void