日期:2014-05-18  浏览次数:20745 次

难道托管对象没有值引用??
C# code

namespace ConsoleApplication2
{
   
    class Program
    {
         static  void abc(a ba)
        {
            ba.fun();
            ba.b = "1234143";
        }
        static void Main(string[] args)
        {
            a c= new a();
            c.b = "esafdf";
            abc(c);
            abc(c);
            Console.ReadKey();
        }
        
          
    }
    public class a
    {
        public string b;
        public a()
        {
            b = "abcde";
        }
        public void fun()
        {
            Console.WriteLine("{0}",b);
            
        }
    }

}


 这个是我做的一个小试验,按照abc函数的定义,它应该是个值传递的的参数,但竟然传入的参数改变了。。。 在原理上我知道其实我传入的是个托管指针,那意思就是说托管对象没有值传递???如果有请问怎么设计它啊?

------解决方案--------------------
你传入参数是个类啊,类是引用的,不是值,struct才是值哦