C#:函数默认参数

C#函数默认参数允许在方法定义时为参数指定默认值,当调用时未提供该参数值则自动使用默认值:

‌1、基本语法‌

在方法声明中通过参数名=默认值形式定义,例如void Print(string msg="default")。调用时可省略有默认值的参数Print(),此时msg取值为"default"。

‌2、使用规则‌

  • 默认参数必须从右向左连续定义,即某个参数有默认值后,其右侧所有参数必须都有默认值
  • 默认值必须是编译时常量,不支持运行时动态赋值。
  • 与命名参数结合使用时,可跳过中间默认参数直接指定后续参数值,如Print(repeat:3)。

3、 ‌注意事项‌

  • 避免过度使用默认参数导致代码可读性下降,复杂场景建议使用方法重载。
  • 默认值在编译期确定,修改默认值需重新编译调用方代码。
  • 与params、ref/out参数混用时,需保持参数顺序:(必选参数, ref/out参数, 默认参数, params)。

4、历史版本差异‌

C# 4.0引入默认参数特性,而早期版本需通过方法重载模拟,如定义无参构造函数调用this(默认值)3。C# 12进一步扩展支持lambda表达式的默认参数。

相关推荐
矶鹬笛手16 小时前
(2.1) 信息技术及其发展
sql·计算机网络·c#
u***276117 小时前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#
p***h64317 小时前
JavaScript在Node.js中的异步编程
开发语言·javascript·node.js
散峰而望17 小时前
C++数组(二)(算法竞赛)
开发语言·c++·算法·github
Porunarufu17 小时前
Java·关于List
java·开发语言
子不语18017 小时前
Python——函数
开发语言·python
ndjnddjxn18 小时前
Rust学习
开发语言·学习·rust
月光技术杂谈18 小时前
实战:C驱动框架嵌入Rust模块的互操作机制与完整流程
c语言·开发语言·rust·ffi·跨语言·bindgen·互操作
t1987512818 小时前
基于MATLAB的指纹识别系统完整实现
开发语言·matlab
笑非不退18 小时前
C# c++ 实现程序开机自启动
开发语言·c++·c#