关于无需声明变量的using语句使用语法的技术问询
关于C#中无需声明变量的using语法问题
好的,直接给你明确结论:不存在你期望的using new MyDisposable();这种无需声明变量的简化语法。
目前C#里处理IDisposable对象的相关语法有两种形式:
- 从C# 8.0引入的using声明语法:必须显式声明变量(哪怕是用下划线
_这种占位符变量),也就是你当前使用的using var _ = new MyDisposable();写法,不存在省略变量声明的变体。 - 传统的using语句块语法:可以不声明变量,但必须带上括号——哪怕块内没有任何代码,比如写成
using (new MyDisposable()) { },或者更紧凑的using (new MyDisposable());(注意末尾的分号)。但这种写法依然需要括号,和你想要的无变量、无括号的简洁写法并不一致。
总结来说,你设想的using new MyDisposable();这种语法在C#中是不存在的,要么用带占位符变量的using声明,要么用带括号的空using语句块。
内容的提问来源于stack exchange,提问作者Linus




