我知道ref用于在函数外部传递变量的变量值, 但它与外面有什么不同?
答案 0 :(得分:1)
out
参数必须才能在读取之前和函数返回之前分配。
在读取或函数返回之前,不需要将ref
参数分配给它。
因此,变量必须在作为ref
参数传递之前分配,而out
参数在传入之前可能未初始化。
答案 1 :(得分:1)
ref
参数允许您将 中的数据传递给您的函数 out 。
具有out
参数的函数无法看到参数的初始值(编译器认为它未初始化)
答案 2 :(得分:1)
将参数指定为out
意味着该函数需要在返回之前为其赋值。将参数指定为ref
意味着函数可以为其分配值,但不是必需的。
请注意,这只是一个C#约定,运行时不区分这两者。
答案 3 :(得分:1)
传递给ref参数的参数 必须先进行初始化。相比 这是一个out参数,其中 论证不一定是 在被存在之前明确初始化 传递给out参数。
答案 4 :(得分:0)
ref
。一个例子是字符串解析系统中的索引:一个方法可以有ref int index
,它将根据方法读取的内容递增。
out
类似于多个返回值。在调用方法之前不必初始化变量,并且在返回之前必须在被调用的方法中设置变量 。