1. ref参数需显式初始化,out不需要;2. ref传递输入输出,out用于输出;3. 方法内ref可不修改,out必须赋值;4. ref能双向传递值,out参数仅返回; 推理过程:1. 参数初始化差异:- ref参数要求调用前必须显式初始化变量,因其用于“输入输出”- out参数由被调方法强制赋值,调用前可未初始化2. 参数方向的强制约定...
1、ref指定的参数在函数调用时候必须初始化,不能为空的引用。而out指定的参数在函数调用时候可以不初始化; 2、out指定的参数在进入函数时会清空自己,必须在函数内部赋初值。而ref指定的参数不需要。 口诀: ref有进有出,out只出不进。 正确的使用ref: classProgram {staticvoidMain(string[] args) { Program pg...
解析 答:(1)、ref在作为参数调用函数之间,变量一定要赋值,否则会得到一个常规编译错误:使用了为赋值的变量。 (2)在被调用函数内,以ref引入的参数在返回前不必为它赋值。 (3)out在作为参数调用之前,变量可以不被赋值。 (4)在被调用函数内,以out引入的参数在返回前一定要少赋值一次。
借网上总结的一句话说,ref是有进有出,而out是只出不进。
在C#中,ref和out的区别主要有以下几点:参数传递前的初始化要求:ref:使用ref关键字传递参数时,传入实参之前必须先进行初始化。也就是说,传递给ref参数的变量在方法调用之前必须已经被赋予了一个值。out:使用out关键字传递参数时,传入实参之前不需要初始化。但是,在方法内部,必须在使用out参数之前...
解析 ref和out参数的效果一样,都是通过关键字找到定义在主函数里面的变量的内存地址,并通过方法体内的语法改变它的大小。不同点就是输出参数必须对参数进行初始化。ref必须初始化,out 参数必须在函数里赋值。ref参数是引用,out参数为输出参数。反馈 收藏
而如果使用out关键字,代码会是这样的:public void Swap(out int a, out int b){ a = b;b = a;} 在这里,a和b不需要在调用Swap方法之前被初始化,函数内部会自动进行初始化。总之,ref适用于需要在调用者和被调用者之间共享变量值的场景,而out则更适合于函数需要返回结果值的情况。在实际...
out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。尽管作为 out 参数传递的变量不必在传递之前进行初始化,但需要调用方法中实例化以便在方法返回之前赋值。 尽管ref 和 out 在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用...
ref 和out的区别在面试中会常问到: 首先:两者都是按地址传递的,使用后都将改变原来参数的数值。 其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别,或者说就像有的网友说的,ref是有进有...