C# &引用;使用;没有大括号的语法在某些机器上有效,而在其他机器上无效-为什么?

C# &引用;使用;没有大括号的语法在某些机器上有效,而在其他机器上无效-为什么?,c#,streamreader,C#,Streamreader,这一行代码在我同事的电脑上运行,但在我的电脑上不起作用。我们都在使用VS 2017,但无法找出这对我来说是错误的原因 我已经阅读了这里的文档 我知道我需要使用“(“and”),但我不明白为什么它能在我同事的电脑上工作 此项目的依赖项是 您的同事有一个最新的编译器。你没有。这(“使用声明”,即不使用括号和括号)是最近增加的内容之一-C#8 IIRC 区别是古老的 使用(var x={init}){ //... } 与新的相比: using var x = {init}; // ... 由于使

这一行代码在我同事的电脑上运行,但在我的电脑上不起作用。我们都在使用VS 2017,但无法找出这对我来说是错误的原因

我已经阅读了这里的文档

我知道我需要使用“(“and”),但我不明白为什么它能在我同事的电脑上工作

此项目的依赖项是


您的同事有一个最新的编译器。你没有。这(“使用声明”,即不使用括号和括号)是最近增加的内容之一-C#8 IIRC

区别是古老的

使用(var x={init}){
//...
}
与新的相比:

using var x = {init};
// ...
由于
使用
作用域隐式地持续到包含作用域的末尾(许多人都这样做,因此这种新语法避免了缩进和大括号的增加)


您应该能够通过安装最新的.NET Core SDK来更新编译器。

您在这里使用的是哪个c#版本?请尝试
使用(StreamReader sr=new StreamReader(filePath))
或不使用
StreamReader sr=new StreamReader(filePath)根据@Sajid的评论。。您需要C#8或更高版本才能像这样声明StreamReader。在c#8之前,这是行不通的。我不知道为什么要关闭它,因为它需要澄清:它是完全清楚和有意义的……@MarcGravel正如投票是如何关闭的一样,有一个“重新打开”链接供用户提名,如果他们觉得它清楚和有意义的话,可以重新打开。@Chođěxě341;问题是:我的投票具有单方面约束力。因此,我尽量不成为对任何此类决定的唯一投票人。我不能投票,我只能颁布法令