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;

            }

    }

    }

    更多技术请关注

  • 相关阅读:
    Java实现 LeetCode 394 字符串解码
    Java实现 LeetCode 394 字符串解码
    Java实现 LeetCode 392 判断子序列
    Java实现 LeetCode 392 判断子序列
    Java实现 LeetCode 392 判断子序列
    Java实现 LeetCode 391 完美矩形
    Java实现 LeetCode 391 完美矩形
    Java实现 LeetCode 391 完美矩形
    Java实现 LeetCode 390 消除游戏
    Java实现 LeetCode 390 消除游戏
  • 原文地址:https://www.cnblogs.com/dullbaby/p/10910704.html
Copyright © 2011-2022 走看看