我刚开始学习C#,在C++中的指针变量好像已经不能在使用了。现在请教一个问题,就是在C#中,如何将一个变量的地址做为参数传送到方法中。而且C#中的输出变量和输入变量是什么意思?还请学习C#的朋友给予指导,谢谢。
    

解决方案 »

  1.   

    除了基本的值类型,比如int,byte和enum等,其他类型都是引用类型。
    要将值类型的地址作为参数传递,可以使用这样的语法:
      

  2.   

    用ref和out
    ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。例如:class RefExample
    {
        static void Method(ref int i)
        {
            i = 44;
        }
        static void Main()
        {
            int val = 0;
            Method(ref val);
            //调用方法后val的值改变为44
        }
    }
    传递到 ref 参数的参数必须最先初始化。这与 out 不同,out 的参数在传递之前不需要显式初始化out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。例如:class OutExample
    {
        static void Method(out int i)
        {
            i = 44;
        }
        static void Main()
        {
            int value;
            Method(out value);
            // value is now 44
        }
    }
    尽管作为 out 参数传递的变量不需要在传递之前进行初始化,但需要调用方法以便在方法返回之前赋值。
      

  3.   

    就像楼上说的。
    使用关键字:ref 和 out前者需要初始化:int temp = 10; 
                    static void example(ref int i)
                   {
                      \\code 
                    }
                    example(temp);后者不需要初始化:int temp; 
                    static void example(out int i)
                    {
                       \\code
                      }
                    example(temp);