内容摘自<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#语言的基础概念、语法特性以及实际应用,为读者提供了一个系统...
- **引用参数(ref)**:使用`ref`关键字传递参数时,实际上是传递参数的引用,允许在函数内部修改传入的变量值,改动会反映到调用者处。 - **输出参数(out)**:与`ref`类似,`out`参数也允许函数修改传入的值,...
这篇《C#入门经典学习笔记》中包含了关于C#基础知识的一些关键点,以下是这些知识点的详细解释: 1. **转义字符**:在C#中,转义字符是以反斜杠(\)开头的特殊字符,例如`\t`代表水平制表符,`\n`代表换行符,`\r`...
##### 入门经典——《C#入门经典,语言参考(精)》 这本书主要介绍了C#的基础知识,适合初学者快速入门。书中内容详尽、易于理解,非常适合没有任何编程背景的新手。 #### 二、C# 2.0新特性详解 C# 2.0版本引入...
《C#入门经典》这本书是针对初学者设计的C#编程教程,全面涵盖了C#语言的基础知识和实际应用。在本书中,作者深入浅出地介绍了C# 7和.NET Core 2.0这两个关键版本的新特性,为读者提供了一个扎实的学习平台。 1. **...
鹏哥特色教程之C#入门到精通-eNet网络学院 本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...
### C#基础教程知识点概述 ...以上是对《C#详细基础教程》主要内容的梳理,涵盖了C#语言的基础知识、Windows编程基础知识以及常用控件和类的使用,旨在帮助初学者系统地掌握C#语言的核心概念和技术要点。
《C#入门经典(第四版)》是一本深入浅出的C#编程教材,深受广大初学者和进阶者喜爱。这本书通过丰富的实例和清晰的解释,帮助读者掌握C#编程语言的基础和高级特性。提供的各章节源码是学习过程中不可或缺的一部分,...
10. 参数传递:`ref`和`out`关键字用于按引用传递参数。`ref`参数必须先初始化,而`out`参数则不需要。`out`参数在方法内部必须被初始化,即使在传递前已初始化。 11. 方法重载:通过改变参数数量或类型实现方法...
《C#入门高清pdf(第5版)》是针对初学者的一份详尽教程,旨在帮助读者快速掌握C#编程语言。本教程基于Wrox出版社的《Beginning Visual C# 2010》中文高清版,尽管书名提及的是2010版本,但其涵盖的C#基础概念和语法...
C#支持传值和传引用两种参数传递方式,以及out和ref关键字进行特殊参数处理。 **12. 数组** 数组是相同类型元素的集合,可以是一维、二维或多维。声明如`int[] numbers;`。 **13. 索引器** 索引器允许像访问数组...
但是,通过使用`ref`关键字,可以实现引用传递,使得函数可以直接操作实际参数,而不是其副本。 在C#中,变量的作用域是非常关键的概念。局部变量只在其定义的代码块内有效,而且最好在使用前先声明并初始化。需要...
鹏哥特色教程之C#入门到精通-eNet网络学院 本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...
鹏哥特色教程之C#入门到精通-eNet网络学院 本视频教程非常全面,几乎涵盖了C#语言的全部内容。你最好选择一本书,再结合视频教程,效果更佳。但是好书不多,好书的标准是:内容简单、例子多。最关键的是:你要能...
14. **参数**:讨论了参数的传递方式(按值或按引用),以及out和ref关键字的使用。 15. **方法体和局部变量**:讲解方法中的代码执行流程和局部变量的生命周期。 16. **静态方法和实例方法**:对比分析了两者的...
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#也提供了异步编程的支持,使用async/await关键字可以轻松地编写非阻塞的代码,提高应用程序的响应性和性能。这在处理耗时操作如网络请求或文件读写时尤其有用。 C#的版本不断更新,引入了更多的新特性。...