`

C#入门经典之引用参数使用ref关键字

阅读更多

内容摘自<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#入门到精通 基础篇 2/2

    鹏哥特色教程之C#入门到精通-eNet网络学院  本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...

    鹏哥特色教程之C#入门到精通 中级篇 1/5

    鹏哥特色教程之C#入门到精通-eNet网络学院  本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...

    鹏哥特色教程之C#入门到精通 中级篇 3/5

    鹏哥特色教程之C#入门到精通-eNet网络学院  本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    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#入门到精通 中级篇 5/5

    鹏哥特色教程之C#入门到精通-eNet网络学院  本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...

    轻松学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#学习笔记.txt

    若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号:@ 符号的另一种用法是使用碰巧成为 C# 关键字的被引用的 (/reference) 标识符。 8, 修饰符 修饰符作用 访问修饰符 public private internal ...

    C#编程入门

    包括C#中面向对象概念;类,接口,委托等分类;方法,属性,事件等类成员;对象创建,对象成员调用;+,-,=等数十种运算符的使用;ref,out等数十种关键字的使用

    C#教程语法

    • 程序中不使用#include关键字。程序中的从属关系是象征性的而不是字面上地。这个系统消除了在用不同语言编写的程序间的障碍。例如,Console类可以用另外一种语言编写。 1.2 类型 C#支持两种类型:数据类型和引用...

Global site tag (gtag.js) - Google Analytics