C#——方法的参数列表ref、out、params、in详情

news2024/10/6 17:58:31

在C#中,方法参数列表是在定义方法时指定的,用于接收传递给方法的数据。参数列表包括参数类型和参数名。参数可以是必需的(必须有值),也可以是可选的(可以有默认值)。

方法的参数列表

1. 值参数类型(不加任何修饰符,是 默认的类型)
2. 引用型参数(以ref修饰符声明)
3. 输出型参数(以out修饰符声明)
4. 数组型参数(以params修饰符声明)
5. 只读型参数 (以in修饰符声明)

方法参数ref和out的作用

ref使用

int a = 10;Test(ref a);

Console.WriteLine(a); // 20

public static void Test(ref int a)

{

        a += 10;

}

out使用

int a;

Test(ref a);

Console.WriteLine(a); // 10

public static void Test(ref int a)

{

        a = 10;

}

ref 和 out 关键字的相同点和不同点

ref 和 out 关键字的相同点

1.都是通过函数参数传递的方式 ref 和 out 都是用于按引用传递参数,可以在方法内部修改传递的参数的值。

2.都可以在调用方法之前进行初始化ref 和 out  都可以在调用方法之前进行初始化,调用方法后,参数的实际值以方法内部的赋值为准。

ref 和 out 关键字的不同点

1.参数的初始化使用 ref 关键字传递参数时,参数在调用函数之前必须被初始化(赋值),而使用 out 关键字传递参数时,参数可以在调用的函数内部进行初始化。

2.方法内部的赋值使用 ref 关键字传递参数时,函数内部可以不进行赋值,而使用 out 关键字传递参数时,函数内部必须进行赋值

数组类型参数params

数组型参数类型(params类型): params 关键字可以指定在参数数目可变处采用参数的方法参数。也就是说。使用params可以自动把你传入的值按照规则转换为一个新建的数组。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

(在不确定传几个形参时也可以使用该方法)

实例 :

只读参数类型in

in参数类型只能读取不能赋值,参数在调用函数之前必须被初始化(赋值)。

给方法参数添加默认值

public void DisplayMessage(string message, int times = 1)
{
    for (int i = 0; i < times; i++)
    {
        Console.WriteLine(message);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1834198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智谱GLM-4-9B,超越Llama3,多模态媲美GPT4V

前言 在 2023 年 3 月发布开源对话模型 ChatGLM-6B 后&#xff0c;智谱 AI 迅速成为国内外开源大模型领域的重要力量。今年 6 月&#xff0c;智谱 AI 再次发力&#xff0c;开源了其第四代 GLM 系列模型 —— GLM-4-9B&#xff0c;并首次加入了多模态能力。该模型不仅在性能上超…

软件改为开机自启动

1.按键 win R,输入“shell:startup”命令, 然后就可以打开启动目录了&#xff0c;如下&#xff1a; 2.然后&#xff0c;把要开机启动的程序的图标拖进去即可。 参考&#xff1a;开机启动项如何设置

Table 布局的妙用 - 多行联动布局

1. 前言 最近产品需求遇到一个布局的问题&#xff0c; 大致是两列&#xff0c; 两行的关系&#xff0c; 左侧的文案区域的高度根据右侧内容的高度自动撑满&#xff0c; 左侧文案的宽度根据左侧单元格的最大宽度来适配&#xff0c; 大致如下&#xff1a; 我们通过一般用DIVCSS的…

《汇编语言程序设计》例子之查找最大数

以下是第5章中讲到的 CMOV 的指令的例子&#xff0c;原来的源码是这样的&#xff1a; # cmovtest.s - An example of the CMOV instructions .section .data output:.asciz "The largest value is %d\n" values:.int 105, 235, 61, 315, 134, 221, 53, 145, 117, 5 …

一看就会!Win11文件资源管理器的打开方法!

在Win11电脑操作中&#xff0c;用户可以借助文件资源管理器轻松管理文件或文件夹。但是&#xff0c;许多新手用户不知道要怎么操作才能顺利打开文件资源管理器&#xff1f;接下来小编给大家介绍五种简单快速的打开Win11系统文件资源管理器的方法。 方法 1&#xff1a;WindowsE …

在无人问津时买入,在人声鼎沸时离开

标题今天看到钉大的公众号里面看到的。 在无人问津时买入&#xff0c;在人声鼎沸时离开。 现在应该就是无人问津时。 我从2019年8月开始定投&#xff0c;在2021年1月和2021年7月分别两次达到了收益最高点&#xff0c;之后就一路下跌&#xff0c;到现在已经跌了两年半了。收益…

LDO电容选型指南

1 为什么电容的选择至关重要 电容往往被人们所忽视&#xff0c;在许多工程师的心目中&#xff0c;电容不过是两个导体加上中间的隔离电解质。总而言之&#xff0c;它们属于最低级的电子元件之一。 工程师们通常通过添加一些电容的办法来解决噪声问题。这是因为他们普遍将电容视…

数学学习与研究杂志社《数学学习与研究》编辑部2024年第6期目录

课改前沿 基于核心素养的高中数学课堂教学研究——以“直线与圆、圆与圆的位置关系”为例 张亚红; 2-4 核心素养视角下初中生数学阅读能力的培养策略探究 贾象虎; 5-7 初中数学大单元教学实践策略探索 耿忠义; 8-10《数学学习与研究》投稿&#xff1a;cn7kantougao…

ChatGPT付费创作系统V3.0.2独立版 WEB+H5+小程序端 (H5端界面美化+Pika视频作品广场+SunoAI 文生歌)系统部署教程

播播资源GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序&#xff0c;是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。当前全民热议ChatGPT&#xff0c;流量超级大&#xff0c;引流不要太简单&#xff01;一键下单即可拥有自己的GPT&#xff01;无限…

AI视频分析预警系统

AI视频分析预警系统是一个基于深度学习算法和图像处理技术的软硬件一体化人工智能分析预警系统。该系统能够主动识别和分析视频内容&#xff0c;以识别关键事件和可疑活动&#xff0c;并在必要时发出预警。以下是关于AI视频分析预警系统的主要特点和功能&#xff1a; 系统构成 …

Android 大话binder通信 (上)

戳蓝字“牛晓伟”关注我哦&#xff01; 用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章 本文摘要 用故事的方式把binder通信的整个过程都描述出来&#xff0c;binder通信都经历了哪些节点&#xff0c;在这些节点上的数据有哪些变化&#xff0c;同时还对binder通…

vue3组合式api的正确用法

组合式函数Composables 打开你的vscode, 随便粘贴复制出一段代码&#xff0c;你会看见是这种吧。 在复杂的业务逻辑的压力下&#xff0c;很容易就会写出这种流水账代码&#xff0c;更糟糕的是可能会有类似于使用一个reactive包裹页面中所有数据&#xff0c;然后在按顺序写me…

关于百度seo不得不说的几点

在2023年之前&#xff0c;百度的seo还是很好做的。但现在可以说百度seo已经没啥价值了。不信你搜索几个关键词看看首页的排名状况就知道了。首页位置除了广告基本上都是给你百度自家的产品和一些合作的大平台网站&#xff0c;给独立小站点没有留下一点点空间。 现在做百度seo&…

基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 系统架构 4.2 GoogLeNet网络简介 4.3 手势检测 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 训练过程如下&#xff1a; 将摄像头对准手势&#xff0c;然后进行…

Java基础学习-方法

目录 方法基础概念 方法的格式&#xff1a; 案例&#xff1a;最简单方法的定义 案例&#xff1a;带参数的方法调用 案例&#xff1a;求圆的面积 带有返回值的方法&#xff1a; 方法注意点 方法的重载&#xff1a; ​编辑 案例&#xff1a;数组的遍历&#xff1a; 案例…

2024.6.17 作业 xyt

今日作业&#xff1a; 升级优化自己应用程序的登录界面。 要求&#xff1a; 1. qss实现 2. 需要有图层的叠加 &#xff08;QFrame&#xff09; 3. 设置纯净窗口后&#xff0c;有关闭等窗口功能。 4. 如果账号密码正确…

如何使用GPT-4 生成高效实用的PPT

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

【Linux】Jenkins Pipeline流水线详解及基于Jenkins流水线实现自动更新项目(实战)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

传感器在智能家居中的应用

在物联网时代&#xff0c;智能家居成为人们生活中的重要组成部分。而传感器作为实现智能家居的基础设备&#xff0c;起到了关键的作用。不同类型的传感器能够获取环境中的各种参数&#xff0c;并通过物联网技术实现与智能家居系统的连接。例如&#xff0c;温度传感器可以实时监…

华为OD机试 - 火星文计算2(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…