【发布时间】:2018-12-29 15:43:03
【问题描述】:
在 C# 中,ref 和 out 关键字。
它如何影响内存管理? ref 和 out 关键字的内存管理有什么区别吗?
【问题讨论】:
在 C# 中,ref 和 out 关键字。
它如何影响内存管理? ref 和 out 关键字的内存管理有什么区别吗?
【问题讨论】:
尽管幕后使用的机制相同,但两个关键字之间的区别在于编译器必须对每个参数进行验证:
ref 关键字传递参数,编译器会检查您在调用之前是否已对其进行初始化
out 关键字传递参数,编译器会在退出前检查您调用的方法是否已对相应参数进行赋值。这种差异允许out var construct, which has been added to C# 7.0。由于初始化要求,单独使用 ref 无法实现此功能。
就内存管理而言,两者没有区别:在这两种情况下,引用本身都是按值传递的,而使用引用的代码增加了额外的取消引用级别。
【讨论】: