嵌套的using块

6

5
那个选项有什么问题? - Oskar Kjellin
我在思考...使用(type1 a = new Type1(), type2 b = new Type2)写代码有什么问题吗?在我的大多数情况下,我需要创建两个实例来完成工作。甚至考虑创建一个帮助类来完成它们的工作。 - ioWint
使用两行代码的选项更易读。 - Oskar Kjellin
我不会轻易接受那个 Oskar,因为我每天都在阅读有多个不同类型参数的方法 :) - ioWint
这与此有什么关系? - Oskar Kjellin
显示剩余2条评论
2个回答

4

在同一个using语句中,不可能拥有不同类型的变量声明。C#规范将有效构造的集合限制为单个表达式或本地变量声明。后者在C#语言规范的第8.5.1节中得到了涵盖,并且仅提供单个变量类型。

local-variable-declaration:
  local-variable-type local-variable-declarators

为了支持不同的本地变量类型,你需要使用某种形式的嵌套。例如:
using (Type1 local1 = new Type1(), local2 = new Type1())
using (Type2 local3 = new Type2(), local4 = new Type2())
{

}

谢谢Jared!个人而言,即使IF语句只有一行,我也不喜欢省略花括号...我想我需要放弃这个想法来实现它。 - ioWint

1

不是。它类似于以下内容:

int a, b;

变量a和b都是整型 - 就是这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接