static void showDouble(ref int val)
    {
        val *= 2;
        Console.WriteLine("val doubled={0}", val);
    }
    static void Main(string[] args)
    {
        private int val = 5;//我去调private就能正确运行,为什么加了private就报错呢?我的目的是不想让val作为val传递。
        Console.WriteLine("val={0}", val);
        showDouble(ref val);
        Console.WriteLine("val={0}", val);
    }

解决方案 »

  1.   

    我去调private就能正确运行,为什么加了private就报错呢?我的目的是不想让val作为val传递
    什么private又private的,这句话好难哦,理解的头都大了!
      

  2.   

    局部变量本来就是出了方法体就无效加个private算什么呀?
    private是针对类而言的。。不是针对方法
      

  3.   

    我去除private就能正确运行,为什么加了private就报错呢?其实也没什么目的,就是突发奇想int前加了private,没想到就报错,但是我不觉得有什么错,能解释一下为什么报错吗?
     
      

  4.   

    加了private就是该类的内部可用,外面不能用,当然报错
      

  5.   

    你的那个val本来就是局部变量而只能在Main函数中使用,就可以理解为私有的,
    你再往前面加个private起的是什么作用?
    还不想让其他的方法调用它?———本来就无法调用它的
      

  6.   

    private作为私有字段的情况下是不可访问的
    如果真的需要访问的话需要定义一个属性.
    修饰符(public) 返回值类型 属性名
    {
      get
    {
    return val;
    }
      set
    {
      val=value;
    }
    }然后再调用该属性
    楼主不妨考虑一下用此方法,或者简单点就定义成public公有的
    因为private该修饰符用于修饰方法和全局变量,而且只能够在本类中使用。
      

  7.   

      static void showDouble(ref int val)
        {
            val *= 2;
            Console.WriteLine("val doubled={0}", val);
        }
        static void Main(string[] args)
        {
            private int val = 5;//我去调private就能正确运行,为什么加了private就报错呢?我的目的是不想让val作为val传递。
            Console.WriteLine("val={0}", val);
            showDouble(ref val);
            Console.WriteLine("val={0}", val);
        }不想让val 作为val传递的话, showDouble 这个函数中去掉 ref
      

  8.   

    不让它做 引用传递 就不加  "ref"修饰 就就行了