C# 统一使用语句的简化
我使用的是Unity 2019.2.18f和VS 2019 16.4.3(CSC版本3.4.1-beta4-19610-02)。我对Unity和C#都相当陌生 我编写了如下代码:C# 统一使用语句的简化,c#,unity3d,visual-studio-2019,using,idisposable,C#,Unity3d,Visual Studio 2019,Using,Idisposable,我使用的是Unity 2019.2.18f和VS 2019 16.4.3(CSC版本3.4.1-beta4-19610-02)。我对Unity和C#都相当陌生 我编写了如下代码: using (UdpClient client = new UdpClient(...)) { ... } VS 2019建议将该声明简化为: using UdpClient client = new UdpClient(...); ... 我想这是一个好主意。但是,当我这样做时,回到Unity控制台,它会
using (UdpClient client = new UdpClient(...)) {
...
}
VS 2019建议将该声明简化为:
using UdpClient client = new UdpClient(...);
...
我想这是一个好主意。但是,当我这样做时,回到Unity控制台,它会抱怨using
语句中缺少paren:
Assets\Scripts\NavioRemote.cs(106,19): error CS1003: Syntax error, '(' expected
Assets\Scripts\NavioRemote.cs(106,101): error CS1026: ) expected
但是,VS没有报告任何错误
我有两个问题:
不支持。Unity目前最多只支持7.3语言版本。但如果你等几个月或几年,或是时间旅行,然后Unity将迎头赶上。可能是因为您使用的是较新版本的C#in VS.Unity最多只支持7.3语言和4.3运行时:请记住Unity不支持最新版本的C#/.Net Framework,因此存在语法上的差异和不可用的功能。另外:
使用
只是语法上的甜点为了关闭parens中定义的资源,您仍然可以通过在try块之外声明UdpClient,并在finally块中关闭/处理该UdpClient来完成您想做的事情。我从@ThomasCook的Unity doc链接中看到,它使用的是Roslyn,而不是MS的编译器。很好,谢谢。“我尽我最大的努力去理解Unity在幕后的所作所为”。@JasonC Roslyn是微软制造的,是官方的C#编译器。它在2014/15年取代了以前的c#编译器。在配置VS for 7.3方面也做得不错。谢谢当我转到项目的属性(右键单击Assembly CSharp->properties)时,什么都没有发生,它似乎立即关闭。。。有什么建议吗?