内容摘自<C#入门经典>
代码如下:
class Program { static void Main(string[] args) { int myNumber = 5; Console.WriteLine("myNumber = {0}", myNumber); ShowDouble(ref myNumber); Console.WriteLine("myNumber = {0}", myNumber); Console.ReadKey(); } static void ShowDouble(ref int val) { val *= 2; Console.WriteLine("val doubled = {0}", val); } }
输出:
myNumber = 5 val doubled = 10 myNumber = 10
PS:
可以通过“引用”传递参数。即函数处理的变量与函数调用中使用的变量相同,而不仅仅
是值相同的变量。因此,对这个变量进行的任何改变都会影响用作参数的变量值。为此,只需使用
ref关键字指定参数.
用作ref 参数的变量有两个限制。首先,函数可能会改变引用参数的值,所以必须在函数调用
中使用“非常量”变量。所以,下面的代码是非法的:
const int myNumber = 5; Console.WriteLine("myNumber = {0}", myNumber); ShowDouble(ref myNumber); Console.WriteLine("myNumber = {0}", myNumber);
其次,必须使用初始化过的变量。C#不允许假定ref 参数在使用它的函数中初始化,下面的代
码也是非法的:
int myNumber; ShowDouble(ref myNumber); Console.WriteLine("myNumber = {0}", myNumber);
相关推荐
鹏哥特色教程之C#入门到精通-eNet网络学院 本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...
鹏哥特色教程之C#入门到精通-eNet网络学院 本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...
鹏哥特色教程之C#入门到精通-eNet网络学院 本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...
8.3 使用ref和out参数 142 8.3.1 创建ref参数 142 8.3.2 创建out参数 143 8.4 计算机内存的组织方式 145 8.5 system.object类 147 8.6 装箱 147 8.7 拆箱 148 8.8 数据类型的安全转换 149 8.8.1 is操作符 ...
鹏哥特色教程之C#入门到精通-eNet网络学院 本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...
第1章 C#入门 2 1.1 C#概述 2 1.1.1 C#的发展 2 1.1.2 C#开发的基础 2 1.2 搭建开发环境 3 1.2.1 Visual Studio 2012软硬件配置要求 3 1.2.2 下载Visual Studio 2012 3 1.2.3 安装Visual Studio 2012 4 1.2.4 初始化...
若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号:@ 符号的另一种用法是使用碰巧成为 C# 关键字的被引用的 (/reference) 标识符。 8, 修饰符 修饰符作用 访问修饰符 public private internal ...
包括C#中面向对象概念;类,接口,委托等分类;方法,属性,事件等类成员;对象创建,对象成员调用;+,-,=等数十种运算符的使用;ref,out等数十种关键字的使用
• 程序中不使用#include关键字。程序中的从属关系是象征性的而不是字面上地。这个系统消除了在用不同语言编写的程序间的障碍。例如,Console类可以用另外一种语言编写。 1.2 类型 C#支持两种类型:数据类型和引用...