请问C#的构造函数是属于引用传递类型的吗今天我试了试  给构造函数传递了个值  (是我自定义的类型)然后构造函数里复制给类的私有变量
在类的函数里私有变量改变了 。
我在类外 继续使用这个传递给构造函数的值是 已经是改变过的值了请问是不是所有的类型给构造函数 都是引用传递呢?

解决方案 »

  1.   

    是啊 是我自己定义的类!
    类似于 BItmap是不是如果是int之类的  就是值传递了?
      

  2.   

    在.NET中,值传递是ref和out,ref在使用前必须要赋值,而out使用前不需要赋值你所说的是给类给的属性赋值而已。
      

  3.   

    带参数的构造函数只是生成了一个临时对象,在类外的某个地方调用则返回这个由构造函数生成的临时对象。既然是临时的说明是引用类型!
    构造函数有四种!
    1,缺省构造.
    2,赋值构造.
    3,拷贝构造.
    4,释构2,3是有返回值的!class A{
    public:
    A(){}
    ~A(){}
    A& operator=(const A& a){return *this;}
    A& A(int a){return *this;}
    };
    A a(1);
    //这条语句,会如下
    A(1)->construct;A b=a;
    A(a)->b;
      

  4.   

    和构造函数没关系,构造函数也不过是和其他方法一样都是一行行代码, 进入就是一个进栈的过程,执行完了就出栈.你穿的是class 类型的对象,当然是引用类型。  你传一个 struct类型的,这是值类型的,保证不会改变。int 就是Int32, 是一个struct,你看一下int的定义就知道了。