百科狗-知识改变命运!
--

C# ref与out 区别

乐乐1年前 (2023-12-22)阅读数 8#综合百科
文章标签参数方法

ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:

1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。

2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。

3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

注:在C#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。传值参数在方法调用过程中如果改变了参数的值,那么传入方法的参数在方法调用完成以后并不因此而改变,而是保留原来传入时的值。传址参数恰恰相反,如果方法调用过程改变了参数的值,那么传入方法的参数在调用完成以后也随之改变。实际上从名称上我们可以清楚地看出两者的含义--传值参数传递的是调用参数的一份拷贝,而传址参数传递的是调用参数的内存地址,该参数在方法内外指向的是同一个存储位置。

方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。

若要使用 ref 参数,必须将参数作为 ref 参数显式传递到方法。ref 参数的值被传递到 ref 参数。

传递到 ref 参数的参数必须最先初始化。将此方法与 out 参数相比,后者的参数在传递到 out 参数之前不必显式初始化。

属性不是变量,不能作为 ref 参数传递。

如果两种方法的声明仅在它们对 ref 的使用方面不同,则将出现重载。但是,无法定义仅在 ref 和 out 方面不同的重载。

out

方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。

当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。

若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。

不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。

属性不是变量,不能作为 out 参数传递。

网上有很多文章说ref 只传值,out传地址等等这种说法,好像不是非常的准确。以下是我做的实例代码,大家可以去试试:

public int RefValue(int i,ref int j)

{

int k = j;

j =222;

return i+k;

}

public int OutValue(int i, out int j)

{

j = 222;

return i + j;

}

private void cmdRef_Click(object sender, EventArgs e)

{

int m = 0;

MessageBox.Show(RefValue(1, ref m).ToString());

MessageBox.Show(m.ToString());

}

private void cmdOut_Click(object sender, EventArgs e)

{

int m;

MessageBox.Show(OutValue(1, out m).ToString());

MessageBox.Show(m.ToString());

}

借网上总结的一句话说,ref是有进有出,而out是只出不进。

您好:

电源管理芯片引脚定义

1 VCC 电源管理芯片供电

2 VDD 门驱动器供电电压输入或初级控制信号供电源

3 VID0-4 CPU与 cpu供电管理芯片VID信号连接引脚,主要指示芯片的输出信号, 使两个场管输出正确的工作电压。

4 RUN SD SHDN EN 不同芯片的开始工作引脚

5 PGOOD PG cpu内核供电电路正常工作信号输

6 VTTGOOD cpu外核供电正常信号输出

7 UGATE 高端场管的控制信号

8 LGATE 低端场管的控制信号

9 PHASE 相电压引脚连接过压保护端

10 VSEN 电压检测引脚

11 FB 电流反馈输入即检测电流输出的大小

12 COMP 电流补偿控制引脚

13 DRIVE cpu 外核场管驱动信号输出

14 OCSET 12v供电电路过流保护输入端

15 BOOT 次级驱动信号器过流保护输入端

16 VIN cpu外核供电转换电路供电来源芯片连接引脚

17 VOUT cpu外核供电电路输出端与芯片连接

18 SS 芯片启动延时控制端,一般接电容

19 AGND GND PGND 模拟地地电源地

20 FAULT 过耗指示器输出,为其损耗功率:如温度超过135.c时由高电平转到 低电平指示该芯片过耗.

21 SET 调整电流限制输入

22 SKIP 静音控制,接地为低噪声

23 TON 计时选择控制输入

24 REF 基准电压输出

25 OVP 过压保护控制输入脚,接地为正常操作和具有过压保护功能,连vcc丧失 过压保护功能。

26 FBS 电压输出远端反馈感应输入

27 STEER 逻辑控制第二反馈输入

28 TIME/ON 5 双重用途定时电容和开或关控制输入

29 RESET 复位输出vl-0v跳变,低电平时复位

30 SEQ 选择pwm电源电平转换器的次序 SEQ接地时 5v输 出在3.3v之 前 SEQ 接REF上,3.3v 5v 各自独立 SEQ 接vl上时 3.3v输出在5v 之前

31 RT 定时电阻

32 CT 定时电容

C# ref与out 区别

33 ILIM 电流限制门限调整

34 SYNC 振荡器同步和频率选择,150khz操作时,sync连接到gnd 300khz时 连 接到ref上,用0-5v驱使sync 使频率在340-195khz

希望以上信息对您有所帮助。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)