REF 传递直类型参数的时候 
是不是在托管堆上创建引用指向这个值,还是宁外创建值得副本?
那这个引用是在什么时候被销毁的呢
OUT 在输出值类型的时候又是怎样的一个过程能?

解决方案 »

  1.   

    两个是一样的效果,只是C#在检查语法的时候有所不同。函数内部:
    ref传进来的参数,可以直接使用,out在没赋值前不能使用:
    void f( ref int i )
    {
      Console.Write( i );
    }ref传进来的参数,可以不必赋值,out则在函数执行完之前必须赋值。函数外部:
    如果一个变量没有赋初值,不能作为ref传送但可以作为out传送。
      

  2.   

    参看:http://community.csdn.net/Expert/TopicView3.asp?id=4800740
      

  3.   

    我想问一下REF 传值类型 那里来的引用地址 
    这个引用地址什么时候创建 什么时候销毁 
      

  4.   

    ref就是按引用传递,与地址无关。
      

  5.   

    关于ref和out的区别,一楼已经说得挺清楚的了,不再重复
    但我补充一点:
    dotNET中尽量不要使用"地址",用"引用"(不仅是名字上的区别)
    因为前者不安全,后者是安全的(主要包括指向和类型的区别)
      

  6.   

    关于ref和out的区别,一楼说反了.当在方法的输入参数前面加上out关键字时,传递给该方法的变量可以不被初始值初始化。