• C#值参数、引用参数和输出参数


      一、值参数:在使用参数时,是把一个值传递给函数使用的一个变量。对函数中此变量的任何修改都不会影响函数调用中指定的参数。(由于函数只有一个返回值,不能用作参数的多个变量值)。

      二、引用参数:即函数处理的变量与函数调用中使用的变量相同,而不仅仅是值相同的变量。因此,对这个变量的任何改变都会影响用作参数的变量值。需用ref关键字指定参数。用作ref参数的变量有两个限制,由于函数可能会改变引用参数的值,所有必须在函数调用中使用“非常量”变量。其次,必须使用初始化过的变量。

      三、输出参数:out关键字,指定所给定的参数是一个输出参数。Out关键字的使用方式与ref关键字相同,实际上,他的执行方式与引用参数完全一样,因为在函数执行完毕后,该参数的值将返回给函数调用中使用的变量。

      四、引用参数和输出参数的一些重要区别:

    1. 把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数。
    2. 另外,在函数使用out参数时,必须把它看成是尚未赋值。即调用代码可以把已赋值的变量用作out参数,但存储在该变量中的值会在函数执行时丢失。

      下面通过三个方法分别对三种参数传递进行说明:

         static void AMethod(int i)//值传递
            {
                i = i + 1;
            }
            static void BMethod(ref int i)//引用传递
            {
                i = i + 1;
            }
            static void CMethod(out int i, out string j)//输出传递
            {
                i = 6;//输出参数函数必须在函数内部进行初始化赋值
                j = "return";
            }
            static void Main(string[] args)
            {
                int i = 1; string j = "C#";//输出参数赋值
                AMethod(i);//调用值传递函数
                Console.WriteLine("(1)、 i=1;经过AMethod方法(加1),值传递之后  i=" + i);
                Console.WriteLine();
                BMethod(ref i);//调用引用传递函数
                Console.WriteLine("(2)、 i=1;经过BMethod方法(加1),ref传递之后 i=" + i);
                Console.WriteLine();
                CMethod(out i, out j);//调用输出传递函数
                Console.Write("(3)、 i=1;经过CMethod方法(加1),out传递之后 ");
                Console.WriteLine("i=" + i + " j=" + j); Console.WriteLine();
                Console.ReadKey();
            }

      结果如下显示:

      

  • 相关阅读:
    Elasticsearch 快速入门
    Linux 非互联网环境安装依赖包
    linux 安装mysql(rpm文件安装)
    Nginx安装与配置文件nginx.conf详解
    Linux 知识
    MySQL Windows安装连接
    post请求body格式
    MySQL 数据库备份
    SOAP与restful webservice
    大数据架构工具hadoop
  • 原文地址:https://www.cnblogs.com/dyf96966/p/5483411.html
Copyright © 2020-2023  润新知