ref 和 out 的异同

来源:互联网 发布:淘宝上的淘金币在哪看 编辑:程序博客网 时间:2024/05/15 15:22
 

1.相似点

    (1)生成相同的IL代码

    (2)元数据几乎完全一致,只有一个bit除外,它用于记录声明时指定的是ref还是out

 

2.不同点

    (1)主要体现在编译器行为上:根据是out 还是 ref, 编译器会按照不同的标准来验证你写的代码是否正确。

        如果使用out来标记,表明不指望调用者在调用方法之前初始化好对象,被调用的方法不应该直接读取对象的值,并且必须返回一个可用的对象。

        如果使用ref来标记,表明调用者必须在调用该方法前初始化参数的值,被调用的方法可以自由使用传入的值。