【发布时间】:2017-08-14 20:54:33
【问题描述】:
我刚刚开始在我的 Unity 游戏中使用代理和事件在适当的时候更新标签,而不是每帧都更新标签,尽管大多数时候不会发生任何变化。
为了确保,一个静态事件调用
public static event OnSomething onSomething;
其实有听众,我用
if (onSomething!= null) {
onSomething();
}
这只是一个方便的问题,但 Visual Studio 14 (2015) 说,这可以简化为
onSomething?.Invoke();
我也更喜欢它,因为我熟悉 nullables 并希望使用它们,但如果我确实将代码更改为建议,Unity 会说
error CS1644: Feature `null propagating operator' cannot be used, because it is not part of the C# 4.0 language specification.
那么有没有办法让 Unity 项目使用 v4.0 的 C#,或者我可以告诉 Visual Studio,该项目使用的是旧版本的 C#,所以它会停止这些建议?
编辑: 一点澄清:我不一定想使用任何特定的 C# 版本。我想尽可能使用最新版本来使用这些“很酷的新功能”,只要没有不使用最新版本的主要原因。
【问题讨论】:
-
您确定 Visual Studio 建议进行此更改吗?还是像 Resharper 这样的插件?
-
我还没有使用 Resharper,所以不可能。
标签: c# visual-studio unity3d