c# - 如何为没有具体类型但有接口的参数赋予默认值
问题描述
我有这个功能doSomething。99% 的时间需要相同的参数。我想创建一个默认参数。但是参数的类型是接口
public static void doSomething(Itype arg=new classWhichImplementItype())
{
//do something
}
arg 的默认参数值必须是编译时间常数。
我能怎么做
解决方案
默认参数必须是编译时常量。所以,使用重载:
public static void doSomething()
{
doSomething(new classWitchImplementItype());
}
public static void doSomething(Itype arg)
{
//do something
}
在最新版本的 C# 中,您还可以对重载使用箭头语法:
public static void doSomething() => doSomething(new classWitchImplementItype());
推荐阅读
- opengl-es - GLSL优化:检查变量是否在范围内
- r - R:使用graph2ppt()将绘图导出到PowerPoint时如何自动粘贴文件名?
- ios - React-native 无法为 ios 构建,因为命令代码设计失败,退出代码为非零
- php - 我找不到我的 PHP 代码有什么问题。任何人都可以看到错误吗?
- javascript - 为什么 jQuery 不能修改 svg 元素的宽度/高度标签属性,但可以与其他属性一起正常工作?
- c# - 发布到 IIS 时无法从 DotNetCore 调用 .NET 4.6.1 项目
- kubernetes - RoleBinding 和 ClusterRoleBinding 中的 Kubernetes RBAC apiGroup 字段
- azure - 如何使用 powershell 获取 azure vm 的负载均衡器名称?
- css - 为什么父 DIV 会调整大小,而子元素仍有向下移动的空间?
- selenium - 通过 selenium 运行 chrome