详解C#中三个关键字params,Ref,out
关于这三个关键字之前可以研究一下原本的一些操作
using System; using System.Collections.Generic; using System.Text; namespace ParamsRefOut { class Program { static void ChangeValue(int i) { i=5; Console.WriteLine("The ChangeValue method changed the value "+i.ToString()); } static void Main(string[] args) { int i = 10; Console.WriteLine("The value of I is "+i.ToString()); ChangeValue(i); Console.WriteLine("The value of I is " + i.ToString()); Console.ReadLine(); } } }
观察运行结果发现
值并没有被改变,也就是说此时的操作的原理可能也是跟以前C语言的函数操作是一样的
本文主要讨论params关键字,ref关键字,out关键字。
1)params关键字,官方给出的解释为用于方法参数长度不定的情况。有时候不能确定一个方法的方法参数到底有多少个,可以使用params关键字来解决问题。
using System; using System.Collections.Generic; using System.Text; namespace ParamsRefOut { class number { public static void UseParams(params int [] list) { for(int i=0;i<list.Length;i++) { Console.WriteLine(list[i]); } } static void Main(string[] args) { UseParams(1,2,3); int[] myArray = new int[3] {10,11,12}; UseParams(myArray); Console.ReadLine(); } } }
2)ref关键字:使用引用类型参数,在方法中对参数所做的任何更改都将反应在该变量中
using System; using System.Collections.Generic; using System.Text; namespace ParamsRefOut { class number { static void Main() { int val = 0; Method(ref val); Console.WriteLine(val.ToString()); } static void Method(ref int i) { i = 44; } } }
3) out 关键字:out 与ref相似但是out 无需进行初始化。
以上所述是小编给大家介绍的C#中三个关键字params,Ref,out,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
上一篇:C#将Word转换成PDF方法汇总(基于Office和WPS)
栏 目:C#教程
下一篇:C#基于OLEDB获取Excel文件表结构信息的方法
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/5721.html
您可能感兴趣的文章
- 01-10C#通过反射获取当前工程中所有窗体并打开的方法
- 01-10C#实现Winform中打开网页页面的方法
- 01-10C#实现由四周向中心缩小的窗体退出特效
- 01-10Extjs4如何处理后台json数据中日期和时间
- 01-10C#中DataGridView常用操作实例小结
- 01-10C#编程获取资源文件中图片的方法
- 01-10asp.net中XML如何做增删改查操作
- 01-10C#利用反射技术实现去掉按钮选中时的边框效果
- 01-10C#中查找Dictionary中的重复值的方法
- 01-10C#中TreeView实现适合两级节点的选中节点方法
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 01-11ajax实现页面的局部加载
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10SublimeText编译C开发环境设置
- 04-02jquery与jsp,用jquery
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10C#中split用法实例总结
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10delphi制作wav文件的方法