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

能否在单条指令中为同类型多变量声明并赋值同一值?

关于C#中批量声明同类型变量并赋同一初始值的简化方案

C#目前没有原生语法支持你设想的那种极致简洁的单条指令写法(比如string server, db, user, pwd <= string.Empty;这类形式),但有几种方案可以减少代码重复,接近你的需求:

  • 元组解构(C# 7.0+):
    虽然需要重复初始值,但变量名只需声明一次:

    var (server, db, user, pwd) = (string.Empty, string.Empty, string.Empty, string.Empty);
    

    如果觉得重复写string.Empty麻烦,可以借助辅助方法封装:

    // 提前定义一个通用辅助方法
    public static (T, T, T, T) FourOf<T>(T value) => (value, value, value, value);
    
    // 调用时只需传一次初始值
    var (server, db, user, pwd) = FourOf(string.Empty);
    

    这种方式既保证类型安全,又彻底避免了变量名的重复书写。

  • 数组转解构(适合变量数量较多场景):
    用Enumerable.Repeat生成重复值的数组,再解构到变量:

    var values = Enumerable.Repeat(string.Empty, 4).ToArray();
    var (server, db, user, pwd) = (values[0], values[1], values[2], values[3]);
    

你提到的两种现有写法:

string server, db, user, pwd = server = db = user = string.Empty;

或者

string server, db, user, pwd;
server = db = user = pwd = string.Empty;

确实都会重复变量名,属于C#早期的常规写法,但不如上面的元组+辅助方法方案简洁。

另外你设想的var (server, db, user, pwd) = ("");写法不成立,因为元组的元素数量必须和变量数量匹配,单值元组无法解构到多个变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:27:14