C#中的ref关键字
今天在看discuz!nt 源代码的时候,一些地方用到了ref关键字,由于平时很少接触这东西,略感疑惑,于是在MSDN上找到了答案,挺有意思的,以下摘抄自MSDN:
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。
简单的说就是:通常在值传递时,只是传递的对象的副本,对副本的操作,不能影响到对象本身,而 加上REF关键字后,所做的任何修改,都捡影响到对象本身.
1public partial class Ref_Default : System.Web.UI.Page
2{
3 protected void Page_Load(object sender, EventArgs e)
4 {
5 int oldInt = 10;
6 TestRef(ref oldInt);
7 Response.Write(oldInt.ToString());
8 }
9
10 public void TestRef(ref int newInt)
11 {
12 newInt = 20;
13 }
14}
15
这段代码最后输出的会是20
转载于:https://www.cnblogs.com/tufan/archive/2009/04/19/1439111.html
C#中的ref关键字相关推荐
- 使用C#中的ref关键字,用2个简单例子来说明
在C#中,如果在方法参数前面加上ref关键字,说明参数传递的是引用,而不是值.如何理解呢? 参数是简单类型的例子 static void Main(string[] args){string temp ...
- 如何用java语言实现C#中的ref关键字(按引用传递参数)的效果
https://www.cnblogs.com/nnngu/p/8300164.html 转载于:https://www.cnblogs.com/cnki/p/10409684.html
- C#中的String和string有什么区别?还有ref关键字怎么用?
String 和 string 没有区别 string 是 String 的别名 ref 关键字一般只用于函数参数中,这个参数是 struct 类型,而不是 class 类型 因为 class 类型在 ...
- 【C#】C#中的ref、out关键字的应用与区别
目录 01. 本文背景 02.ref的定义与使用 03.out的定义与使用 04.ref与out的区别 05.小结 01. 本文背景 原本我是一个地地道道的C/C++开发者,我其实很难想象有一天我会去 ...
- c#中使用ref和out传值
c#中使用ref和out传值 首先,如果不使用这两个关键字,那是什么样 呢? 看下面的例子: 使用ref: using System; class Test { static void Swap(re ...
- .Net Core中使用ref和Spanamp;lt;Tamp;gt;提高程序性能
一.前言 其实说到ref,很多同学对它已经有所了解,ref是C# 7.0的一个语言特性,它为开发人员提供了返回本地变量引用和值引用的机制. Span 也是建立在ref语法基础上的一个复杂的数据类型,在 ...
- .Net Core中使用ref和SpanT提高程序性能
一.前言 其实说到ref,很多同学对它已经有所了解,ref是C# 7.0的一个语言特性,它为开发人员提供了返回本地变量引用和值引用的机制. Span也是建立在ref语法基础上的一个复杂的数据类型,在文 ...
- 【C# 教程系列第 4 篇】什么是 c# 中的 ref 参数?
这是[C# 教程系列第 4 篇],如果觉得有用的话,欢迎关注专栏. 写这篇博客之前,本来想把标题写成 "ref参数与out参数的区别",但想了想还是分开写吧,以免更混淆大家. 首先 ...
- c#中out ref的简单使用说明
在C#中通过使用方法来获取返回值时,通常只能得到一个返回值.因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢? MSDN: ref 关键字使参数 ...
- mysql用于删除表中数据的关键字是_MySQL-删除数据(DELECT)
数据库备份介绍: 数据库一旦删除数据,它就会永远消失. 因此,在执行DELETE语句之前,应该先备份数据库,以防万一要找回删除过的数据. MySQL提供了非常有用的工具,用于在服务器上本地备份或转储M ...
最新文章
- html手机不能自动播放音乐,解决移动端浏览器 HTML 音频不能自动播放的三种方法...
- python axis=0 axis=1的区别
- C++14尝鲜:Generic Lambdas(泛型lambda)
- s5720找mac 华为交换机_【基础】交换机堆叠模式
- python延时函数_Python实现屏幕自动截图
- SpringMVC 的执行流程
- 冬知寒,我方暖,3本Python好书赠你慢慢品
- ubuntu good 便签
- GlobalAuthenticationConfigurerAdapter.class 整合activiti 工作流报错
- java 子类 同名参数_Java -- 父类和子类拥有同名变量
- mysql主从复制(原理以及配置)
- C语言学习记录_2019.02.08
- Kubernetes 两步验证 - 使用 Serverless 实现动态准入控制
- 青春散场,永远的天王!
- 如何利用快解析快速实现动态域名解析,内网穿透?
- 四色印刷和专色印刷的区别是什么?
- 数位DP(期末机测题)
- 程序员从来没给丈母娘买礼物,真相竟然令人沉默
- 嵌入式设计实验三:Tasket与工作队列
- Ubuntu16.04下fctix无法切换中英文输入法