You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为方法中的string[]类型参数设置默认值?

问题解答

在C#中,数组无法作为编译时常量,所以你没法直接用空数组字面量作为可选参数的默认值。

你提到的default关键字在这里等价于null(引用类型的默认值都是null),如果想要明确实现“默认空数组”的效果,有两种常用写法:

  1. 用null作为默认值,在方法内部兜底为空数组:
void Foo(string[] param = null) {
    param = param ?? Array.Empty<string>();
    // 后续业务逻辑
}

这里Array.Empty<string>()是.NET提供的高效空数组实例,避免重复创建新的空数组对象。

  1. 通过方法重载实现默认空数组的调用体验:
void Foo() {
    Foo(Array.Empty<string>());
}

void Foo(string[] param) {
    // 核心逻辑
}

调用时可以不带参数,内部自动传入空数组,绕开可选参数默认值必须是编译时常量的限制。

需要注意的是,new string[0]虽然能创建空数组,但它属于运行时创建的实例,并非编译时常量,所以不能直接作为可选参数的默认值,这也是你最初写法报错的原因。

内容的提问来源于stack exchange,提问作者Bart Friederichs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:52:38