ref 和out传参的不同

简介:

今天又遇到这个问题了,问了问同事,他说最近面试的时候,也问道他了,于是给我讲了讲,现在大概是记住了,记录下来,以备自用。

首先是看下面的code例子

 

string b= "bb";
Public  void A( ref b)
{
// to do
}

string d;
Public  void C( out d)
{
d= "jjjjj";
//  to  do 
}

 

方法A是引用参数b但是b必须先定义并且在方法之前进行初始化,在引用的时候就像一般方法处理即可;方法B是先定义变量d此时不需要初始化,在引用此变量的方法中需要进行初始化,然后可在方法内做任何操作,个人理解方法C等同于下列代码:

 

string d;
Public  string C( string d)
{
d= " ddd ";
return d;
}

所有out是在传进未初始化的参数后在内部做一定的处理,并返回定义的类型。ok game over!



本文转自shenzhoulong  51CTO博客,原文链接:http://blog.51cto.com/shenzhoulong/677047,如需转载请自行联系原作者

相关文章
element-使用el-date-picker 选择日期后返回周几(整理)
element-使用el-date-picker 选择日期后返回周几(整理)
|
数据可视化
数量生态学冗余分析(RDA)分析植物多样性物种数据结果可视化|数据分享
数量生态学冗余分析(RDA)分析植物多样性物种数据结果可视化|数据分享
|
索引
链表学习--单链表-增删查实现
单链表的学习,增删查。java 实现
852 0
|
Java Maven Android开发
|
4天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
293 116
|
19天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
430 42
Meta SAM3开源:让图像分割,听懂你的话