问题是:
一个类class1的构造函数class1(ref typex xxx)接收一个typex类型的参数,
怎么在class1中申明一个成员变量yyy来等于这个xxx?
也不是“等于”,是“就是”。
要求的效果是操作yyy等于操作xxx。谢谢。

解决方案 »

  1.   

    啥意思?你传引用不就是为了用指针的概念么?class class1
    {
      class1()
      {
        
      } 
      class1(ref typex xxx)
      {
        xxx.value = "ttt";
      }
      
      static void main(string[] arg)
      {
        typex yyy = new typex();
        class1 a = new class1( ref yyy);   
      }}不就行了么?yyy经过构造函数后值已变为"ttt"了,这是不是你要的效果??
      

  2.   

    怎么个直接声明啊?
    当然不是:
    private typex yyy;
    public class(ref typex xxx)
    {
       yyy = xxx
    }我需要的是声明一个yyy(怎么声明不知道),把xxx给yyy(怎么给不知道)。
    指针就是直接赋值就行了,可这个怎么做啊。。
      

  3.   

    qingyuan18(zealot_tang) 
    ====================================================
    对,是要相当于用指针那样,可class1的构造函数中获取typex引用后,并不是马上使用,它有自己的消息系统,它要在需要的时候来使用,那么我就要把传递过来的xxx保存到另一个地方,而不是赋值给另一个变量。
      

  4.   

    变量有两种类型
    1,值类型。比如 int ,float,byte, 和所有的 struct 等等
    2,引用类型。比如string 和所有的class等等
    他们区别在于使用 = 号的时候会发生不同情况
    a = valueA;
    b = valueB;
    a = b; 
    a = valueC;
    b ? 
    如果a,b 是值类型b = valueB还是原来的值,如果a,b是引用类型的 b = valueC了;
    关于你这个问题,你必须先分清typex是引用类型,还是值类型。
    如果本来就是引用类型的,那根本就不要ref传递
    如果值类型需要把引用类型转成值类型利用  Boxing    装箱.