C#入门 018 传值、输出、引用、数组、具名、可选参数、扩展方法(this)

embedded/2024/11/14 3:32:40/

传值参数

声明时不带修饰符的形参是值形参。

一个值形参对应于一个局部变量,只是它的初始值来自该方法调用所提供的相应实参

允许方法将新值赋给值参数。这样的赋值只影响由该值形参表示的局部存储位置,而不会影响在方法调用时由调用方给出的实参。

值参数包括 引用参数

输出参数

通过输出参数来获得除返回值之外的额外输出

用 out 修饰符声明的形参是输出形参。类似于引用形参,输出形参不创建新的存储位置。

相反,输出形参表示的存储位置恰是在该方法调用中作为实参给出的那个变量所表示的存储位置。

变量在可以作为输出形参传递之前不一定需要明确赋值,

在方法返回之前,该方法的每个输出形参都必须明确赋值。

引用参数

  • 引用形参是用 ref,修饰符声明的形参。与值形参不同,引用形参并不创建新的存储位置。相反,
  • 引用形参表示的存储位置恰是在方法调用中作为实参给出的那个变量所表示的存储位置。
  • 变量在可以作为引用形参传递之前,必须先明确赋值。
  • outterStu和stu 所指向的内存地址是同一块地址 ,而在这个内存地址里面存储的就是对象在堆内存当中的地址

数组参数

  • 必需是形参列表中的最后一个,由params修饰
  • 举例:String.Format方法和String.Split方法
  • 省略声明数组的步骤: int[] array = new int[] {1,2,3}

具名参数

  • 参数的位置不再受约束
  • 增加代码可读性
  • PrintInfo("Time" , 34 )

可选参数

  • 参数因为具有默认值而变得可选,可写可不写
  • 不推荐使用可选参数

扩展方法(this参数)

  • 方法必需是公有、静态的,即被public static所修饰
  • 必需是形参列表中的第一个,由this修饰
  • 必需由一个静态类(一般类名为SomeTypeExtension)来统一收纳对SomeType类型的扩展方法
  • 不修改目标类型的情况下,为目标数据类型“追加”方法

  • 举例:LINQ方法
  • using System Linq; 引入Linq的名称空间


http://www.ppmy.cn/embedded/137390.html

相关文章

Excel(图例)中使用上标下标

单元格中 1、在Excel单元格中刷黑要设置成上标的字符,如m2中的2; 2、单击右键,在弹出的对话框中选择“设置单元格格式”; 3、在弹出的“设置单元格格式”对话框中选择上标(或下标); 4、最后…

云计算基础知识

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:黑客云技术基础之(网恋避险)_哔哩哔哩_bilibili 目录 一、什么是云 二、云架构介绍 1. 技术基础的重要性 2. 技术演变…

树莓派5 python的坑 想在树莓派5上 用python的看过来 包括GPIO引脚,摄像头等等

作为一个三流程序员,主打一个与时俱进,既然都有树莓派5了 就别抱着树莓派4 不放了,而且网上的教程一搜全是一模一样的树莓派4的就很恶心。现在我开始逐步摸排树莓派5的python相关内容。 首先,树莓派5里面 你不能直接pip install …

STM32问题集

这里写目录标题 一、烧录1、 Can not connect to target!【ST-LINK烧录】 一、烧录 1、 Can not connect to target!【ST-LINK烧录】 烧录突然 If the target is in low power mode, please enable “Debug in Low Power mode” option from Target->settings menu 然后就&…

学习笔记——KMP

字符匹配算法一直是所有人的噩梦。除却难懂的思路,难卡的算法复杂度也是一个问题 下面是少许常见字符匹配算法及其常见衍生算法 也许有点看不清楚,但大致可以看到KMP算法的衍生算法是最多的 大致优缺点 KMP:速度平均O(nm),最慢O…

Dinky控制台:利用SSE技术实现实时日志监控与操作

1、前置知识 1.1 Dinky介绍 实时即未来,Dinky 为 Apache Flink 而生,让 Flink SQL 纵享丝滑。 Dinky 是一个开箱即用、易扩展,以 Apache Flink 为基础,连接 OLAP 和数据湖等众多框架的一站式实时计算平台,致力于流批一体和湖仓一体的探索与实践。 致力于简化Flink任务开…

React核心概念与特点

React是由Facebook开发并维护的一个用于构建用户界面的开源JavaScript库。它以其独特的组件化架构、高效的性能优化以及灵活的状态管理方式,在前端开发领域占据了重要地位。本文将对React的核心概念、特点以及关键知识点进行全面解析,以帮助读者更好地理…

C++builder中的人工智能(27):如何将 GPT-3 API 集成到 C++ 中

人工智能软件和硬件技术正在迅速发展。我们每天都能看到新的进步。其中一个巨大的飞跃是我们拥有更多基于自然语言处理(NLP)和深度学习(DL)机制的逻辑性更强的AI聊天应用。有许多AI工具可以用来开发由C、C、Delphi、Python等编程语…