c# - 默认参数值到另一个参数
问题描述
我想做如下的事情:
private void MyMethod(int param1, int param2 = param1){}
目的是使 param2 成为可选参数,如果未指定,则为其赋予与第一个参数相同的值。
这可能吗?
我知道我可以使用可为空的类型并在方法主体中进行检查和分配。我也知道我可以通过重载来实现这一点。我特别想知道这在签名中是否可行。
我正在使用.Net 4.0
谢谢
解决方案
这可能吗?
不可以。参数的默认值必须是以下之一:
- 编译时间常数(例如数字或字符串文字)
- 参数类型的默认值,例如
default(Foo)
或default
(从 C# 7.1 开始) - 值类型的“零”值,例如
new Guid()
不幸的是,它非常严格。
推荐阅读
- eclipse - Eclipse 2020-06 中“所有”Red Hat 附加组件的“无法读取存储库”
- python - 将字符串中的十六进制字符转换为字符
- python - 使用网站访问受限的 Web API (raspberry pi)
- angular - Ng-Model 不从输入标签更新对象(在带有键值管道的 ngFor 内)
- node.js - 在 nodejs 中使用 ES 模块时 PM2 崩溃
- javascript - 使用 moment.js 进行实时计算
- c++ - 当getter需要将受保护的资源作为现代c ++中的shared_ptr返回时,如何设计一次写入和多次读取?
- graphql - GraphQL DynamoDb 过滤器列表字段
- c# - 使用 AutoFac 通过工厂解析泛型类型
- matlab - Matlab:翻转列矩阵中的特定行