private void test(string str){…}
private void test(ref string str){…}
private void test(out string str){…}

解决方案 »

  1.   

    private void test(string str){…}//传递一个string变量的副本作为参数,让函数调用
    private void test(ref string str){…}//传递一个string变量的引用,函数使用时修改会改变原值
    private void test(out string str){…}//传递一个string变量的引用,并且允许使用未赋值的引用
      

  2.   

    string aa=NULL;
    test(aa) ==>会编译不通过
    test(ref aa)==>会运行报错
    test(out aa)==>没问题,但要求函数返回之前对aa赋值
      

  3.   

    1-->按值传送.
    2-->按地址传送.
    2-->按地址传送.可以不进行初始化.如:
        static void function(out int i)
        {
           i=100;
        }
        public static int Main()
        {
          int i;
          function(out i);//调用时也要用out关键字
          this.Text=i.Tostring();//"100"
          return;
        }