第一:
using System;
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            new Program().b(a);
            Console.WriteLine(a++);
        }
        public void b(int a)
        {
            Console.WriteLine(a++);
        }
    }
}
结果为:5
      5
为什么引用b方法,输出a后自增1,
但返回后输出不变,,,,为什么呢?
第二:
谁知道求1-100间素数的最简过程(循环次数)?听说是十几次哦~~~
第三:
谢谢!

解决方案 »

  1.   

    第一: 
    using System; 
    using System.Collections.Generic; 
    using System.Text; namespace ConsoleApplication1 

        class Program 
        { 
            static void Main(string[] args) 
            { 
                int a = 5; 
                new Program().b(ref a); 
                Console.WriteLine(a++); 
            } 
            public void b(ref int a) 
            { 
                Console.WriteLine(a++); 
            } 
        } 

      

  2.   

    加上 ref 试试:
    using System; 
    using System.Collections.Generic; 
    using System.Text; namespace ConsoleApplication1 

        class Program 
        { 
            static void Main(string[] args) 
            { 
                int a = 5; 
                new Program().b(ref a); 
                Console.WriteLine(a++); 
            } 
            public void b(ref int a) 
            { 
                Console.WriteLine(a++); 
            } 
        } 
      

  3.   

    这么简单的题都答错...        static void Main(string[] args) 
            { 
                int a = 5; 
                new Program().b(a); 
                Console.WriteLine(a++); //这里结果是5 因为 1.值传递不改变对象,a还是5...2.后缀增量操作运算的结果是操作数增加之前的值...
            } 
            public void b(int a) 
            { 
                Console.WriteLine(a++); //这里结果是5 因为后缀增量操作运算的结果是操作数增加之前的值,加上ref还是5...
            }
      

  4.   

    加上ref 为引用参数./ 在方法里使用的变量是你传递的变量.
      

  5.   

    public void b(int a)
            {
                Console.WriteLine(a++);
            }
    传值调用,这个里面再加Main方法里的a都不变
      

  6.   

    变量是什么?对象是什么?回去好好看书...再说一次...b方法体内的Console.WriteLine(a++);和值传递引用传递毫无关系...
      

  7.   

    楼主要搞清楚a++和++a的区别。
    using System;public class app
    {
    public static void Main(){
    int a = 5;
    int b = 5;
    Console.WriteLine(a++);//print 5 - 变量a的确会加1,但在输出以后
    Console.WriteLine("现在a = {0}", a);

    Console.WriteLine(++b);//print 6 - 变量b在输出之前加1,所以是6
    }
    }