zoukankan      html  css  js  c++  java
  • NET高级 REF OUT

    普通参数是“值类型传递拷贝,引用类型传递引用”,但是都不能在函数内部修改外部变量的指向(p.Age=5不是可以吗?),这时候要用ref或者out(相当于把变量都传进去了),他们的作用不同:ref的作用“方法内部修改外部变量的引用”;out的作用“方法内部给外部变量初始化,相当于一个函数多个返回值”。

    1、使用ref型参数时,传入的参数必须先被初始化,方法中可以不赋值。对out而言,必须在方法中对其完成初始化,方法外部不用初始化,初始化也没用。 

    2、使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。 

    3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 

    应用:

    1、交换两个变量的值;

    2、int.TryParse():if(int.TryParse(s,out i)),返回值表示是否转换成功,out参数表示转换成功的值。

    using System;

    using System.Collections;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    namespace TestConsole

    {

        class Program

        {

            static void Main(string[] args)

            {

                int i = 1;

                int j = 2;

                int k;

                int result=Template(i,j,out k);

                Console.WriteLine(result+","+k);

                Console.ReadKey();

            }

            public static int Template(int i,int j, out int k)

            {

                i = i + j;

                j = i - j;

                i = i - j;

                k = j;

                return i;

            }

    }

    }

  • 相关阅读:
    Nginx在linux环境下(centos7)的安装、负载均衡设置
    ocr识别开源软件tesseract试用记录
    Nginx在windows环境下的安装、负载均衡设置
    一个测试程序迭代的故事05
    一个测试程序迭代的故事04
    一个测试程序迭代的故事03
    一个测试程序迭代的故事02
    一个测试程序迭代的故事01
    Delphi5和Delphi7属性编辑器内存泄漏问题的解决
    使用Calibre自带工具批量转换电子书格式
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/13163891.html
Copyright © 2011-2022 走看看