`

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#入门经典及相应的习题答案

    《C#入门经典》是一本深受初学者喜爱的编程教材,尤其对于第三版,它更加注重实践和基础知识的结合,旨在帮助读者快速掌握C#编程技能。本书详细讲解了C#语言的基础概念、语法特性以及实际应用,为读者提供了一个系统...

    C#入门经典笔记

    - **引用参数(ref)**:使用`ref`关键字传递参数时,实际上是传递参数的引用,允许在函数内部修改传入的变量值,改动会反映到调用者处。 - **输出参数(out)**:与`ref`类似,`out`参数也允许函数修改传入的值,...

    C#入门经典学习笔记.pdf

    这篇《C#入门经典学习笔记》中包含了关于C#基础知识的一些关键点,以下是这些知识点的详细解释: 1. **转义字符**:在C#中,转义字符是以反斜杠(\)开头的特殊字符,例如`\t`代表水平制表符,`\n`代表换行符,`\r`...

    c#入门经典,语言参考(精)

    ##### 入门经典——《C#入门经典,语言参考(精)》 这本书主要介绍了C#的基础知识,适合初学者快速入门。书中内容详尽、易于理解,非常适合没有任何编程背景的新手。 #### 二、C# 2.0新特性详解 C# 2.0版本引入...

    C#入门经典

    《C#入门经典》这本书是针对初学者设计的C#编程教程,全面涵盖了C#语言的基础知识和实际应用。在本书中,作者深入浅出地介绍了C# 7和.NET Core 2.0这两个关键版本的新特性,为读者提供了一个扎实的学习平台。 1. **...

    鹏哥特色教程之C#入门到精通 基础篇 2/2

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

    C#详细基础教程(推荐使用)

    ### C#基础教程知识点概述 ...以上是对《C#详细基础教程》主要内容的梳理,涵盖了C#语言的基础知识、Windows编程基础知识以及常用控件和类的使用,旨在帮助初学者系统地掌握C#语言的核心概念和技术要点。

    《C#入门经典(第四版)》各章节源码下载(三)

    《C#入门经典(第四版)》是一本深入浅出的C#编程教材,深受广大初学者和进阶者喜爱。这本书通过丰富的实例和清晰的解释,帮助读者掌握C#编程语言的基础和高级特性。提供的各章节源码是学习过程中不可或缺的一部分,...

    C#基础入门Word

    10. 参数传递:`ref`和`out`关键字用于按引用传递参数。`ref`参数必须先初始化,而`out`参数则不需要。`out`参数在方法内部必须被初始化,即使在传递前已初始化。 11. 方法重载:通过改变参数数量或类型实现方法...

    C#入门高清pdf(第5版)

    《C#入门高清pdf(第5版)》是针对初学者的一份详尽教程,旨在帮助读者快速掌握C#编程语言。本教程基于Wrox出版社的《Beginning Visual C# 2010》中文高清版,尽管书名提及的是2010版本,但其涵盖的C#基础概念和语法...

    C#快速入门指导.Word

    C#支持传值和传引用两种参数传递方式,以及out和ref关键字进行特殊参数处理。 **12. 数组** 数组是相同类型元素的集合,可以是一维、二维或多维。声明如`int[] numbers;`。 **13. 索引器** 索引器允许像访问数组...

    C#入门可件,你可以试试看的

    但是,通过使用`ref`关键字,可以实现引用传递,使得函数可以直接操作实际参数,而不是其副本。 在C#中,变量的作用域是非常关键的概念。局部变量只在其定义的代码块内有效,而且最好在使用前先声明并初始化。需要...

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

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

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

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

    微软VS中自带的一本超级经典的C#语法书

    14. **参数**:讨论了参数的传递方式(按值或按引用),以及out和ref关键字的使用。 15. **方法体和局部变量**:讲解方法中的代码执行流程和局部变量的生命周期。 16. **静态方法和实例方法**:对比分析了两者的...

    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操作符 ...

    Inside C#编程从入门到精通_

    此外,C#也提供了异步编程的支持,使用async/await关键字可以轻松地编写非阻塞的代码,提高应用程序的响应性和性能。这在处理耗时操作如网络请求或文件读写时尤其有用。 C#的版本不断更新,引入了更多的新特性。...

Global site tag (gtag.js) - Google Analytics