首页 > 编程语言 >C# 方法中的 引用参数 ref out 的使用

C# 方法中的 引用参数 ref out 的使用

时间:2024-01-13 11:24:24浏览次数:35  
标签:C# ref int num 参数 方法 out

应用于参数声明,以按引用而不是按值传递参数:

ref:在调用方法之前必须初始化参数。 该方法可以将新值赋给参数,但不需要这样做。
out:该调用方法在调用方法之前不需要初始化参数。 该方法必须向参数赋值。

ref 参数修饰符
若要使用 ref 参数,方法定义和调用方法均必须显式使用 ref 关键字

void Method(ref int refArgument)
{
    refArgument = refArgument + 44;
}

int number = 1;
Method(ref number);
Console.WriteLine(number);  // 45

注意:传递到 ref 参数的自变量必须先经过初始化,然后才能传递。
out 参数修饰符
若要使用 out 参数,方法定义和调用方法均必须显式使用 out 关键字。

   public int GetOut(int a,out int num)
        {
            num = a;
            return num+a;
        }

 var res= GetOut(2,out int num);
            Console.WriteLine(res); //4
            Console.WriteLine(num); //2

注意:作为 out 自变量传递的变量在方法调用中传递之前不必进行初始化。 但是,被调用的方法需要在返回之前赋一个值。
out 在方法参数申明,在方法里面赋值,在方法外依然可以获取out变量进行使用。

标签:C#,ref,int,num,参数,方法,out
From: https://www.cnblogs.com/qingheshiguang/p/17962132

相关文章

  • OpenCV - 计算机视觉开发
      OpenCV 介绍  OpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。  OpenCV是跨平台的,可以在Windows、Linux、Mac OS、Android、iOS等操作系统上......
  • CSS
    3、CSS概述3.1CSS介绍​ 层叠样式表(CSS),又称串样式列表,由W3C定义和维护的标砖,一种用来为结构化文档(如HTML文档或XML应用)、添加样式(字体、间距和颜色等)的计算机语言。​ CSS能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型......
  • E - Christmas Color Grid 1
    E-ChristmasColorGrid1https://atcoder.jp/contests/abc334/tasks/abc334_e思路https://www.cnblogs.com/Lanly/p/17923753.htmlCodehttps://atcoder.jp/contests/abc334/submissions/49243194inth,w;bools[1005][1005];intc[1005][1005];//c-classlongl......
  • Python: spire.doc
     #encoding:utf-8#版权所有2024涂聚文有限公司#许可信息查看:#描述:#Author:geovindu,GeovinDu涂聚文.#IDE:PyCharm2023.1python3.11#Datetime:2024/1/1310:21#User:geovindu#Product:PyCharm#Project:pyBaiduAi#F......
  • 大一统的监控探针采集器 cprobe
    需求背景监控数据采集领域,比如Prometheus生态有非常多的Exporter,虽然生态繁荣,但是无法达到开箱即用的大一统体验,Exporter体系的核心问题有:良莠不齐:有的Exporter写的非常棒,有的则并不完善,有些监控类别甚至有多个Exporter,选择困难写法各异:Exporter所用的日志库、配置文......
  • 通过 KernelUtil.dll 劫持 QQ / TIM 客户端 QQClientkey / QQKey 详细教程(附源码)
    前言由于QQ9.7.20版本后已经不能通过模拟网页快捷登录来截取QQClientkey/QQKey,估计是针对访问的程序做了限制,然而经过多方面测试,诸多的地区、环境、机器也针对这种获取方法做了相应的措施,导致模拟网页快捷登录来截取数据被彻底的和谐,为了解决这个问题我们只能更改思路对......
  • python Image close
    如何实现“pythonImageclose”作为一名经验丰富的开发者,你要教会刚入行的小白如何实现“pythonImageclose”。下面是一个完整的流程图,来帮助你理解整个过程:graphTBA(开始)-->B(导入模块)B-->C(打开图像文件)C-->D(关闭图像文件)D-->E(结束)上......
  • python Crypto加密解密
    PythonCrypto加密解密导言在现代信息时代,数据的安全性十分重要。为了保护敏感数据,我们经常需要使用加密算法来对数据进行加密和解密。Python中的Crypto库是一个功能强大的加密库,提供了各种加密算法和工具,可以方便地对数据进行加密和解密操作。本文将介绍使用PythonCrypto库进......
  • 详解Java多线程之循环栅栏技术CyclicBarrier
    第1章:引言大家好,我是小黑,工作中,咱们经常会遇到需要多个线程协同工作的情况。CyclicBarrier,直译过来就是“循环屏障”。它是Java中用于管理一组线程,并让它们在某个点上同步的工具。简单来说,咱们可以把一群线程想象成一队马拉雪橇的驯鹿,CyclicBarrier就像是一个指定的集合点,所有驯......
  • oracle和mysql语句的异同
    Oracle和MySQL是两个流行的关系型数据库管理系统,它们都有SQL(结构化查询语言)作为主要的查询语言。尽管它们共享许多基本的SQL功能,但它们之间也存在一些关键的差异。以下是一些Oracle和MySQL语句的异同点:数据类型:相同点:两者都有整数、浮点数、字符、日期等数据类型。不同点:Oracle有一......