【发布时间】:2011-03-17 00:33:48
【问题描述】:
【问题讨论】:
标签: c#
【问题讨论】:
标签: c#
传递给 ref 参数的参数 必须先初始化。比较 this 到一个 out 参数,其 论点不必是 在被显式初始化之前 传递给 out 参数。
【讨论】:
out 参数必须在读取之前和函数返回之前分配。
ref 参数在读取或函数返回之前不需要分配。
因此,变量必须在作为ref 参数传递之前分配,而out 参数在传递之前可能未初始化。
【讨论】:
ref 参数允许您将数据 in 传递给您的函数,除了发送它out。
带有out参数的函数看不到参数的初始值(编译器认为它未初始化)
【讨论】:
将参数指定为out 意味着该函数需要在返回之前为其赋值。将参数指定为ref 意味着函数可以为其赋值,但不是必须的。
请注意,这只是 C# 约定,运行时不会区分两者。
【讨论】:
ref 用于当进入方法的变量的值被认为已初始化并准备好使用时。一个例子是字符串解析系统中的索引:一个方法可以有一个ref int index,它将根据方法读取的内容递增。
out 类似于多个返回值。变量在调用方法前不必初始化,变量必须在被调用方法中设置好后才返回。
【讨论】: