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

C#能否像Pascal一样用单一类型批量声明多个函数参数?

C# 是否支持单一类型批量声明多个函数参数的简写方式?

C# 目前不支持像 Pascal 那样在函数参数列表里用单一类型批量声明多个同类型参数——你尝试的写法public void Foo(int bar1, bar2, bar3) { }确实会触发编译错误,因为C#的语法规则要求每个函数参数必须显式指定类型。

虽然C#允许在局部变量声明时用int foo, bar;这种批量简写,但函数参数的语法规则和变量声明是分开设计的,两者并不通用。

关于这个特性的背景:类似的简化提案曾在C#的设计讨论中出现过,但最终没有被纳入语言标准,主要原因包括两点:

  • 语法一致性:刻意区分函数参数和局部变量的声明语法,避免在参数列表中产生歧义(比如混淆参数作用域、和其他语法特性冲突)。
  • 可读性优先:显式标注每个参数的类型,能让代码阅读者更直观地理解每个参数的类型信息,尤其是在复杂函数签名中,减少误解的概率。

如果需要处理多个同类型参数,目前的替代方案有两种:

  1. 逐个显式指定类型,这是最直接的写法:
    public void Foo(int bar1, int bar2, int bar3) { }
    
  2. 用自定义类/结构体或元组封装参数,简化函数签名:
    // 自定义类封装
    public class BarGroup
    {
        public int Bar1 { get; set; }
        public int Bar2 { get; set; }
        public int Bar3 { get; set; }
    }
    
    public void Foo(BarGroup barGroup) { }
    
    // 元组方式(C# 7.0及以上支持)
    public void Foo((int Bar1, int Bar2, int Bar3) barTuple) { }
    

内容的提问来源于stack exchange,提问作者David Rahl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:32:38