C# 关键字 out是干么的?

2024-12-04 14:31:24
推荐回答(4个)
回答1:

C#中的ref和out关键字

1、引用参数(ref)在可以作为引用参数在函数成员调用中传递之前,必须已明确赋值,而输出参数(out)在可以作为输出参数在函数成员调用中传递之前不一定要明确赋值,在该函数成员正常返回前都必须已明确赋值。

2、在函数内部,引用参数(ref)被视为初始已赋值,输出参数(out)被视为初始未赋值。

3、默认地,C#中的所有参数都是值传递。只有在参数的修饰符中明确包含out或ref,才是引用传递。但是需要知道的是,当参数的类型是引用类型时,你传递的是一个对象的引用而不是实际的对象。

回答2:

out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。
比如:
SqlDataReader dataReader=null;
public void RunProc(string procName, out SqlDataReader dataReader)
{
//方法中得到一个SqlDataReader 赋值给dataReader
}
其他地方引用dataReader,dataReader的值就是方法中SqlDataReader的值。

回答3:

用out 修饰,可变量值在被调函数中的改变反应到调用函数中,并且在使用前可以不初始化.

回答4:

这里表示 dataReader 是按地址传参的,并且在使用dataReader之前必须初始化dataReader.