首页 > 解决方案 > 如何为没有具体类型但有接口的参数赋予默认值

问题描述

我有这个功能doSomething。99% 的时间需要相同的参数。我想创建一个默认参数。但是参数的类型是接口

    public static void doSomething(Itype arg=new classWhichImplementItype())
    {
        //do something
    }

arg 的默认参数值必须是编译时间常数。

我能怎么做

标签: c#

解决方案


默认参数必须是编译时常量。所以,使用重载:

public static void doSomething()
{
    doSomething(new classWitchImplementItype());
}

public static void doSomething(Itype arg)
{
    //do something
}

在最新版本的 C# 中,您还可以对重载使用箭头语法:

public static void doSomething() => doSomething(new classWitchImplementItype());

推荐阅读