使用ref方法可以在方法中的更改原有的值,再传递回主函数中。
为什么我在方法中没有加入ref关键字,主函数中的数组值也会改变呢?

解决方案 »

  1.   


    private void main()
    {
       string[] strArray = new string[]{"1","2","3"};
       doSomething(strArray);
    }private void doSomething(string[] strArray)
    {
       strArray[0]="3";
    }你是这么搞得不?
      

  2.   

    没加REF关键字,当你传入的是引用类型的时候,还是会改变的,比如数组
      

  3.   

    数组是引用类型的,当然是可以的举个例子,
    List<sting> l = new List<sting>();
    你在传入的方法中l.add 或者删除,都是执行同一个地址,所以看起来是同步的
    但是你在方法中
    l = new List<sting>();
    你在创建一个list对象,在增加删除,原来的是不会改变的,因为指向已经改变了
      

  4.   

    运气不好,没加ref,却传了ref
      

  5.   

    数组也是引用类型,要想不变,可用out关键字