Car*_* S. 1 c# dictionary initializer unity-game-engine
我在Unity项目的代码中重复出现以下错误
Assets / App / Models / AnnotationModel.cs(39,17):错误CS1644:无法使用功能“字典初始化程序”,因为它不属于C#4.0语言规范
以下是触发这些错误块的代码:
["CameraPose"] = ConvertToken(CameraPose),
["Aspect"] = Aspect,
["Image"] = Image.Id,
["Fov"] = Fov,
["IsAnchored"] = IsAnchored,
["AnchorPosition"] = ConvertToken(AnchorPosition),
["DrawLines"] = ConvertToken(DrawLines),
["SurfaceDrawLines"] = ConvertToken(SurfaceDrawLines)
Run Code Online (Sandbox Code Playgroud)
初始化C#词典的新方法是什么?我尝试(未成功)在C#4.0语言规范中找到初始化的更新版本。
如果有帮助,下面的代码显示这些对象是什么
public Pose CameraPose;
public float Aspect;
public ImageModel Image;
[Range(0, 120)] public float Fov = 60;
public bool IsAnchored;
public Vector3 AnchorPosition;
public List<List<Vector2>> DrawLines;
public List<List<Vector3>> SurfaceDrawLines;
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!我对Unity和C#完全陌生。
初始化C#词典的新方法是什么?我尝试(未成功)在C#4.0语言规范中找到初始化的更新版本。
似乎您认为初始化字典的方式已过时,您需要找到新的字典方式。只是相反!初始化字典的方式是一项新功能,已在c#6.0版中添加到该语言中。但是Unity3d默认使用c#4.0的旧版本语言。
您在这里有2个选项:
大概是这样的:
{"CameraPose", ConvertToken(CameraPose)},
{"Aspect", Aspect},
{"Image", Image.Id},
{"Fov", Fov},
{"IsAnchored", IsAnchored},
{"AnchorPosition", ConvertToken(AnchorPosition)},
{"DrawLines", ConvertToken(DrawLines)},
{"SurfaceDrawLines", ConvertToken(SurfaceDrawLines)}
Run Code Online (Sandbox Code Playgroud)
请遵循以下指示:
Edit->Project Settings->Player->Other Settings->Configuration->Scripting Runtime Version
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5200 次 |
| 最近记录: |