我正在使用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(...);
...
我猜那是一个 C# 8.0 的语法。然而,当我这样做时,在Unity控制台中会抱怨using
语句中缺少括号:
Assets\Scripts\NavioRemote.cs(106,19): error CS1003: Syntax error, '(' expected
Assets\Scripts\NavioRemote.cs(106,101): error CS1026: ) expected
然而,VS没有报错。
我有两个问题:
- 为什么Unity编译失败,而VS认为它是正确的呢?
- 是否有办法让Unity接受这种语法?
using
只是语法糖,用于关闭在括号中定义的资源,因此您仍然可以通过在 try 块之外声明 UdpClient 并在 finally 块中关闭/处理该 UdpClient 来实现您想要做的事情。 - Thomas Cook