C#中方法默认是值传递的,使用ref和out可以把使值类型作为引用传递,而我想知道可以把引用类型(比如数组)通过值传递吗?这不同于默认的值传递,默认时,方法对数组的操作有效,而我现在希望对数组操作无效。

解决方案 »

  1.   

    每个object都有个方法叫Clone()用于实现对对象的浅拷贝, 楼主可以试试.如果是对象内有对象属性,那么就要自己去重写Clone方法了.
      

  2.   

    一楼的说得不对,可以的,只要加个关键字就行了 在类型前加 ref 关键字比如
    public void ss(ref string aa)
    {
      aa="bb";
    }调用
    string ww = "255";
    ss(ref ww);
    输出ww的值是 bb
      

  3.   

    自己写一个类似string的不可变对象
      

  4.   

    朋友请你看清楚,楼主是想实现c++中的 const参数修饰,在c#中实现不了的
      

  5.   

    用深拷贝就可以解决,MemberwiseClone()