【C#图解教程】第六章 方法(下)

news2024/10/7 15:30:18

输出参数

函数的输出只有返回值有时不太够,此时需要用到输出参数,用修饰词out声明
输出参数的要求与引用参数类似,需要是变量,此外,输出参数也是实参的别名,指向堆中同一对象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9DnDThzm-1685616286901)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3460409a-1eb6-4b52-82c0-802052740dbe/Untitled.png)]

输出参数与引用参数的不同在于,在方法内部给输出参数赋值后才能读取它,且返回前必须在所有路径都为输出参数赋值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ze8gjh7y-1685616286903)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d94fbd98-5381-40cc-8ce3-dde7d57a1d2d/Untitled.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kq0I4gXS-1685616286903)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fa94cfc1-4c83-4984-9240-f28d837699e0/Untitled.png)]

C#7.0之后,可以不必预先声明变量作为输出参数了,如:

在这里插入图片描述

参数数组

参数数组允许同一类型的零个或多个实参对应一个形参,使用参数数组需要注意的点如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DvJC1dS8-1685616286904)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6aad29a1-fd67-4cb1-8a68-e7d47fdcc040/Untitled.png)]

参数数组的声明方法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XMeLwTBx-1685616286904)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/02317dbf-242a-4bc9-91f7-29d10b8dace1/Untitled.png)]

方法调用

使用参数数组的方式有两种:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q1mU0Mqg-1685616286905)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/031f8820-0eb0-49e4-9805-a5a3668e4aac/Untitled.png)]
这说明我们在调用参数数组时不需要使用修饰符params,这里与其他参数类型有些区别:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eEFcNgBL-1685616286906)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9df352c4-dc67-4a56-b874-873401fa309f/Untitled.png)]

而参数数组在声明时需要使用修饰符,调用时不允许有修饰符
在使用参数列表时,编译器的动作是:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6RYjF43k-1685616286908)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5c23f815-7426-4c6f-ae0e-be3519940e10/Untitled.png)]

直接将数组作为实参时,编译器会使用你的数组而不是创建新的。

参数类型总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ueZNKFi9-1685616286909)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e4349cac-e40b-48d8-99ba-c374272da9a1/Untitled.png)]

方法重载

一个类中的同名方法称为方法重载,这些同名方法必须有不同的“签名”:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jX2OC1IN-1685616286910)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f026a102-d6a0-4745-8168-c179175af41a/Untitled.png)]

命名参数

位置参数根据形参与实参的位置匹配,不使用位置参数的话,还可以使用类似字典形式的命名参数:

在这里插入图片描述

当代码调用了多次时,使用命名参数有助于代码的阅读

可选参数

意思是当我们在设定形参时可以指定形参的默认值,然后在加载实参时可以不加载该形参对应的实参

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RmoEXMae-1685616286910)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b80ec693-7ee0-4d97-a02b-41fd17934939/Untitled.png)]

但也并不是所有的参数都可以作为可选参数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lSf0wjrn-1685616286911)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/24c9b10e-efc6-491f-95ce-8ce5b4e738f0/Untitled.png)]

所有类型的形参的声明顺序遵循以下原则:

在这里插入图片描述

栈帧

在调用方法时,内存从栈顶开始分配,保存和方法关联的一些数据项,这块内存就是栈帧

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AmQPibLB-1685616286911)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e995e325-0997-47e8-82e7-9ac9c55bccc2/Untitled.png)]
在这里插入图片描述

递归

递归是方法调用自己,为每一次方法调用把新的栈帧压入栈顶。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【实用篇】Elasticsearch03

文章目录 分布式搜索引擎031.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法1.2.5.小结 1.3.RestAPI实现聚合1.3.1.API语法1.3.2.业务需求1.3.3.业务实现 2.自动补全2.1.拼音分词器2.2.自定义分词器2.3.…

【人工智能】— Support Vector Machines 支持向量机

【人工智能】— Support Vector Machines 支持向量机 支持向量机概述支持向量机支持向量机原理介绍分类间距(Classification Margin) 支持向量机概述 找到使间隔最大化的超平面>B1比B2更好 支持向量机 研究起因:如何找到最优的切分面 分…

制作酷炫可视化大屏利器--分享10种比较流行的开源免费的图表库

在开发可视化项目的过程中往往涉及到可视化图表, 多酷炫的报表, 大屏, 都用了非常多的图表, 接下来我和大家分享一些比较流行的开源免费的图表库. 分享10种比较流行的开源免费的图表库 1,Frappe Charts2,Recharts3,Protovis4,dygr…

Docker快速入门(分分钟钟就能上手)

Docker的思想 集装箱:会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。标准化: 运输的标准化:Docker有一个码头,所有上传的集装箱都放在了这个码头上,当谁需要某一个环…

设计模式-01.设计思想

设计思想 此系列文章非本人原创,是学习笔记。 下面讲一些常见的设计思想 基于接口而非实现编程 这个原则非常重要,是一种非常有效的提高代码质量的手段,在平时的开发中特别经常被用到。 如何解读原则中的“接口”二字? “基于…

python面向对象操作1(速通版)

目录 一、高阶函数 1.lambda函数 2.lambda函数注意事项 3.map用法 4.map和lambda函数配合 二、reduce函数 1.reduce基本应用 2.reduce和匿名函数配合 三、filter()函数 1.简单用法 2.高阶应用 四、列表排列方法(key和lambda问题) 1.正常排序…

Node服务器和常见模块

1 Node服务器开发 2 fs模块-文件系统 3 event模块-事件处理 4 认识二进制和buffer 5 Buffer的创建方式 6 Buffer的源码解析 node 的fs模块操作: 这里主要讲node如何进行读取文件,操作文件。服务器该有的操作node都有。 node的fs读取文本文件内容的d…

自定义starter

第一步、创建 xxx-spring-boot-starter 的spring Initializr模块 第二步、删除不需要的内容&#xff08;启动类、除下面spring-boot-starter的其它依赖&#xff0c;maven编译插件&#xff09; <dependency><groupId>org.springframework.boot</groupId><…

linux理解软硬链接

软硬连接 在linux下面链接文件有两种&#xff0c;一种是类似window的快捷方式功能的文件&#xff0c;可以让你快速链接到目标文件&#xff08;或目录&#xff09;&#xff0c;叫做软链接&#xff0c;另一种则是通过文件系统的inode链接来产生新的文件名&#xff0c;而不是产生…

Linux 常用开发工具(yum、vim)

绪论 耐心是一切聪明才智的基础。—— 柏拉图。本章进入到Linux下的一些常用的工具&#xff0c;这些工具能帮助我们去更好的使用Linux操作系统。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#xff0c;部分为重点部分&a…

[MAUI程序设计] 用Handler实现自定义跨平台控件

文章目录 Handler与Xamarin.Forms实现的区别为什么要用Handler代替Renderer解耦生命周期管理更细粒度的控制 用Effect来实现呢&#xff1f;自定义手势监听控件在各平台上实现TouchRecognizeriOS中的实现Android中的实现Windows中的实现 创建控件使用控件最终效果项目地址 今天来…

使用 Kubeadm 和 CRI-O 在 Rocky Linux 8 上安装 Kubernetes 集群

在 Rocky Linux 8 上安装 Kubernetes 集群。毫无疑问&#xff0c;Kubernetes 将继续改变我们大规模部署和管理业务应用程序的方式。无论用于部署应用程序的模型是手动还是通过 CI/CD 管道&#xff0c;Kubernetes 仍然是处理编排、管理和扩展应用程序的最佳选择。 对于那些不知…

一劳永逸的方法解决函数scanf报错问题

目录 scanf报错示例 代码 报错提醒 报错翻译 解决方案1&#xff08;不建议&#xff09;:将scanf换成scanf_s&#xff1b; 解决方案2&#xff08;临时解决&#xff09;&#xff1a; 解决方案3&#xff08;建议&#xff09;&#xff1a; 方法1&#xff08;建议&#xff09…

javaScript蓝桥杯----资讯接口

目录 一、介绍二、准备三、目标四、代码五、知识点1.res.end()2.res.end与res.send 六、完成 一、介绍 随着技术的发展&#xff0c;很多前端工程师已经不满足于只做诸如页面布局和交互这些开发工作了&#xff0c;很多人将目光逐渐转向了“大前端”范围&#xff0c;其中就包括不…

Vim学习笔记【Ch03】

Vim学习笔记 系列笔记链接Ch03 Searching FilesVim中打开和编辑文件用Find进行文件搜索用grep进行文件内搜索:vim搜索:grep搜索 通过Netrw浏览文件Fzffzf和ripgrep安装fzf配置fzf语法查找文件在文件内部查找用Rg代替Grep在多个文件中搜索和替换 小结 系列笔记链接 Ch00&#x…

【论文速览】根据人脑fMRI信号重建图像 Image Reconstruction from human brain activity

文章目录 前言文章一研究背景主要方法部分实验结果总结与思考参考资料 文章二研究背景主要方法部分实验结果总结与思考 前言 人类的视觉神经系统对于真实世界的视觉刺激有着非凡的感知与理解能力&#xff0c;比如我们能够准确地识别物体距离和三维几何关系等&#xff0c;这是当…

2023/6/4总结

CSS的学习&#xff1a; 2023-06-01 19-57-46-649 移动开发流式布局&#xff1a; 流式布局&#xff0c;是根据百分比布局&#xff0c;因为手机的尺寸会不一样&#xff0c;所以利用百分比布局可以很好的解决缩放以及尺寸问题&#xff1a; 这是跟着视频做的一个案例&#xff1a;…

Lecture 8 Deep Learning for NLP: Recurrent Networks

目录 Problem of N-gram Language Model N-gram 语言模型的问题Recurrent Neural Network(RNN) 循环神经网络RNN Language Model: RNN 语言模型Long Short-Term Memory Model (LSTM) 长短期记忆模型&#xff08;LSTM&#xff09;Gating Vector 门向量Forget Gate 忘记门Input G…

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

Nginx-rewrite模块详细介绍

Nginx-rewrite模块 前言一、Nginx-rewrite模块概述1、rewrite场景2、rewrite实现3、rewrite执行顺序4、语法格式 二、rewrite示例1、基于域名的跳转2、基于客户端IP访问跳转3、基于旧域名跳转到新域名后面加目录4、基于参数匹配的跳转5、基于目录下所有 php 结尾的文件跳转6、基…