首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ref与out

ref与out

作者头像
wfaceboss
发布于 2019-04-08 03:33:34
发布于 2019-04-08 03:33:34
8060
举报
文章被收录于专栏:wfacebosswfaceboss

首先:两者都是按地址传递的,使用后都将改变原来参数的数值。

其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别.

 总结:ref是有进有出,out是只出不进。

1.ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。

2.out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ref和out的区别在c#中 总结
 ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。简单点说就是,使用了ref和out的效果就几乎和C中使用了指针变量一样。它能够让你直接对原数进行操作,而不是对那个原数的Copy进行操作。 还是以例子来说明吧; 1. ref: int i =0; 有函数fun(ref i)和fun(i) 它们的函数体都是{ i = 3;},那么在执行以下两段代码后: (1)int i = 0; fun(i); System.Console.WriteLi
小小许
2018/09/20
4710
C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)
  这两天在网上看到的总结很多,尤其是博客园中的,很多很多,也给了我很多的启发,当然自己也总结过,而且有很多人也给与我一些意见和看法。不管怎样,自己还是先把所谓的基础知识加强巩固下吧。
aehyok
2018/09/11
8020
C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)
Unity3d热更新之xLua热更新[C#调用Lua]
本来想着一个文章全都写完,后来才发现,失策了!!!,加上自己感觉要是太长了,后面自己复习也懒得去看,那就细分成三个文章咯!毕竟有些地方还是有些区别的
七鳄不是鳄
2023/02/27
3.1K0
Unity3d热更新之xLua热更新[C#调用Lua]
实例对比剖析c#引用参数的用法建议收藏
c#引用参数传递的深入剖析值类型的变量存储数据,而引用类型的变量存储对实际数据的引用。(这一点很重要,明白了之后就能区分开值类型和引用类型的差别)
全栈程序员站长
2022/07/15
6620
通俗易懂的ref和out区别
ref 和 out 是C#开发中经常用到的两个关键字,但是很多人没有搞清楚这两个关键字的具体区别,下面我们来说一下这两个关键的区别。
喵叔
2020/09/08
1.1K0
通俗易懂的ref和out区别
C#中ref和out的区别使用
ref 关键字会导致参数通过引用传递,而不是通过值传递。 通过引用传递的效果是,对所调用方法中的参数进行的任何更改都反映在调用方法中。 例如,如果调用方传递本地变量表达式或数组元素访问表达式,所调用方法会将对象替换为 ref 参数引用的对象,然后调用方的本地变量或数组元素将开始引用新对象。
vv彭
2020/10/27
1.3K0
.NET 基础面试题(一)
所谓的委托本质上就是一个类,它是将方法作为参数传入到另一个方法中。例如 onclick 事件中的参数就是一个方法。
喵叔
2021/06/14
6310
C# ref与out关键字解析
简介:ref和out是C#开发中经常使用的关键字,所以作为一个.NET开发,必须知道如何使用这两个关键字. 1、相同点 ref和out都是按地址传递,使用后都将改变原来参数的数值。 2、ref关键字 (1)、使用ref关键字的注意点: i、方法定义和调用方法都必须显式使用 ref 关键字 ii、传递到 ref 参数的参数必须初始化,否则程序会报错 iii、通过ref的这个特性,一定程度上解决了C#中的函数只能有一个返回值的问题 (2)、代码示例: using System; using System.Col
郑小超.
2018/01/26
6130
C#面试题及答案_c++面试题库
参考链接:https://www.cnblogs.com/bakuhert/articles/5878086.html
全栈程序员站长
2022/09/27
6370
C#面试题及答案_c++面试题库
JavaSE(一)之类与对象
终于到了要学习面向对象程序设计了,其中可能很多东西以前都知道怎么去用,但是却不知道怎么来的,或者怎么样写会出错,所以今天总结起来。 一、OOP概述   Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP)。     1)抽象(abstract)         忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用关注细节。       
用户1195962
2018/01/18
6160
深入理解 Java 方法
当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
静默虚空
2022/03/23
3570
深入理解 Java 方法
C# ref, in, out关键字详解
变量分配在栈中,因此变量会有一个内存地址。下方代码Utility.AsPointer<T>()方法用于获取指向该地址的指针。(如果不知道ref关键字的作用,这里就先把它理解为取地址)
郑子铭
2023/10/29
1.4K0
C# ref, in, out关键字详解
C#关键字常见面试题
不仅仅为了面试而学习,更多的是查漏补缺、扩充知识面和大家共同学习进步(文章中有描述不当的地方欢迎文末留言指正,我会及时改正🤞)。
追逐时光者
2024/02/22
3710
C#关键字常见面试题
c#基础系列3---深入理解ref 和out
在上篇文章深入理解值类型和引用类型的时候,有的小伙伴就推荐说一说ref和out 关键字,昨天晚上彻夜难眠在想是否要谈一下呢,因为可谈的不是太多,也可能是我理解的不够深刻。
架构师修行之路
2019/07/23
1.8K0
C# 中的 Out 和 Ref 及Params 参数
out 和ref 参数 经常用来通过方法传递参数来获取值,当您的方法不只有一个返回值的时候,这两个参数就发挥作用了。ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。  在这篇文章里,我将解释如何在c#应用中使用这两个参数。   1、out 参数   out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。   public class mathClass { public static int TestOu
跟着阿笨一起玩NET
2018/09/18
1.3K0
[读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析
前言 上次在公司开会时有同事分享windebug的知识, 拿的是string字符串Concat拼接 然后用while(true){}死循环的Demo来讲解. 其中有提及string操作大量字符串效率低下的问题, 刚好自己之前也看过类似的问题, 于是便拿出来记录一下. 本文内容: 参数传递问题剖析, string与stringbuilder详解 1,参数传递问题剖析 对于C#中的参数传递,根据参数的类型可以分为四类: 值类型参数的按值传递 引用类型参数的按值传递 值类型参数的按引用传递 引用类型参数的按引用
一枝花算不算浪漫
2018/05/18
1K0
[C#] ref知多少
要理解C# 7的ref特性,需要认真回顾C# 6以前版本中ref参数的工作原理,首先是变量和值之间的区别。
科控物联
2022/03/29
1.3K0
[C#] ref知多少
面试官:说下Golang Slice的底层实现,泪崩了!
数组固定长度数组长度是数组类型的一部分,所以[3]int 和[4]int 是两种不同 的数组类型数组需要指定大小,不指定也会根据处初始化对的自动推算出大 小,不可改变数组是通过值传递的
码农编程进阶笔记
2022/04/08
9740
面试官:说下Golang Slice的底层实现,泪崩了!
c++从入门到进阶--引用与常量
constexpr必须用常量表达式初始化,也就是说必须在编译过程就能计算出结果(若要用函数作为constexpr的初始值那么该函数应该是constexpr类型的函数)。
风骨散人Chiam
2020/10/28
8900
5.1Python函数(一)
目录 目录 前言 (一)函数的基本知识 (二)函数的基本使用 ==1.函数的简单定义== ==2.传值函数== (3)输出效果 ==3.不定长函数== ==4.缺省函数== ==5.函数的传值过程== ==6.具有返回值函数== ==7.函数的使用说明== 目录 前言 分模块思想,分任务编程,是编程的一大重要思维,其中的实现,函数就担当了一个重要角色,今天我们就来学习Python的初级函数。 (一)函数的基本知识 (1)函数的优点 体积小,减少内存大小,冗余度小。 重用性强,可重复利用。 维护方
py3study
2020/01/17
6100
相关推荐
ref和out的区别在c#中 总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档