C# 中的单行输出

本文关键字:输出 单行 | 更新日期: 2023-09-27 18:35:21

这是

那种通常会被关闭的问题,因为它不是"建设性的"。但我希望这次不会。我正在考虑向 C# 团队发送有关此块以下事实的反馈:

int i;
string str;
object obj;
AnyOutMethod(out i, out str, out obj);

与我建议的新样式相比,是丑陋的:

AnyOutMethod(out int i, out string str, out object obj);

我的方法有任何负面影响吗?在 C# 的未来版本中支持此语法是否有意义?

C# 中的单行输出

这看起来像是为 C# 6.0 提出的声明表达式,但没有成功。引用的原因是他们是...

特点是仍有大量的下游工作 剩余。它们也是我们认为具有潜力的功能 一个更大的故事的开始:...声明表达式将构成模式的基石 配套和解构设施。现在,这些功能将全部 考虑一起发布以后的版本。

正如引用所暗示的那样,与该功能领域相关的当前工作似乎在GitHub上被标记为"模式匹配"标签。这个问题似乎特别映射到您所提议的现代版本。

当然,在向语言添加新语法时,需要考虑一些负面和微妙的问题;一般意义上似乎在广义上支持该功能,但对整理实现细节存在担忧,主要是

  • 声明变量的作用域
  • 变量的可变性(或不可变性)
  • 围绕变量是否被明确分配的问题(请参阅与foo is SomeType bar相关的示例)
  • 该功能如何与讨论中更广泛的模式匹配功能配合使用

基于对问题的粗略通读。