代码如下 int a, b;
a = new int();
b = a;
b = 1;在b=1后我的本意是希望a也为1,但实际上我b=a只是拷贝了地址,a的值还是0.但在c++中就可以用*b=1来实现,请问c#中有类似的方法吗?int *a, *b;
a = new int();
b = a;
*b = 1;

解决方案 »

  1.   

    我只想实现c++中int *a, *b;
    a = new int();
    b = a;
    *b = 1;这种功能。
      

  2.   

    int是值类型,不是引用类型
      

  3.   

    通过传递引用来实现吧public void PassRefInt(ref int i1, ref int i2)
        {
            i1 = i2;
        } int a = 12;
                int b = 34;
                PassRefInt(ref a, ref b);
                Response.Write(a);//34
      

  4.   

    我实际的问题不是int,而是IDictionary
    现在的做法是自己写了个copy值的函数,大致如下:void CopyDict(IDictionary source, ref IDictionary dest)
    {
         foreach (KeyValuePair pair in source)
         {
             dest.Add(pair.Key, pair.Value);
         }
    }不知道有没有简单点的方法?