在C# 中,怎样在A类的其他方法中改变在一个A类的构造方法中传入的参数的值。例如class A 
{
int at;  
A{int t }
{ at = t;}
 void Add()
{
   at++;
}
}
main()
{
   int t = 3;
   A a = new A 
   a.Add();
  // t = 4?
}

解决方案 »

  1.   

    class A 
    {
    int at;  
    A{int t }
    { at = t;}
     void Add()
    {
       at++;
    }
    }
    main()
    {
       int t = 3;
       A a = new A(t) 
       a.Add();
      // t = 4?
    }
      

  2.   

    为了避免使用指针,要把参数封装成引用类型对象
    class AT
    {
      int value;
    }
    class A 
    {
    AT at  
    A{AT t }
    { at = t;}
     void Add()
    {
       at.Value++;
    }
    }
    main()
    {
       AT t = new AT();
       t.Value = 3;
       A a = new A(t) 
       a.Add();
      //yes, t.Value = 4
    }
      

  3.   

    使用readonly
    class A
    {
    readonly int at;
    A{int t }
    { at = t;}
    void Add()
    {
    //此处将出现编译错误
    at++;
    }
    }
    main()
    {
    int t = 3;
    A a = new A
    a.Add();
    // t = 4?
    }