能否在单条指令中为同类型多变量声明并赋值同一值?
关于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
相关产品推荐
相关产品推荐

