1.相似点
(1)生成相同的IL代码
(2)元数据几乎完全一致,只有一个bit除外,它用于记录声明时指定的是ref还是out
2.不同点
(1)主要体现在编译器行为上:根据是out 还是 ref, 编译器会按照不同的标准来验证你写的代码是否正确。
如果使用out来标记,表明不指望调用者在调用方法之前初始化好对象,被调用的方法不应该直接读取对象的值,并且必须返回一个可用的对象。
如果使用ref来标记,表明调用者必须在调用该方法前初始化参数的值,被调用的方法可以自由使用传入的值。
1.相似点
(1)生成相同的IL代码
(2)元数据几乎完全一致,只有一个bit除外,它用于记录声明时指定的是ref还是out
2.不同点
(1)主要体现在编译器行为上:根据是out 还是 ref, 编译器会按照不同的标准来验证你写的代码是否正确。
如果使用out来标记,表明不指望调用者在调用方法之前初始化好对象,被调用的方法不应该直接读取对象的值,并且必须返回一个可用的对象。
如果使用ref来标记,表明调用者必须在调用该方法前初始化参数的值,被调用的方法可以自由使用传入的值。