Инициализатор словаря сценариев Unity C # не является частью спецификации языка C # 4.0 - PullRequest
0 голосов
/ 28 июня 2018

Я застрял с повторением следующей ошибки в моем коде в моем проекте 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)

Каков новый способ инициализации словаря 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;  

Буду признателен за любую помощь! Я совершенно новичок в Unity и C #.

1 Ответ

0 голосов
/ 29 июня 2018

Каков новый способ инициализации словаря C #? я пытался (безуспешно), чтобы найти обновленную версию инициализации в языковая спецификация C # 4.0.

Кажется, вы думаете, что способ инициализации словаря устарел, и вам нужно найти новый способ сделать это. Это просто реверс ! Инициализация словаря - это новая функция , добавленная к языку в версии c # 6.0. Но Unity3d использует по умолчанию c # 4.0 более старую версию языка.

У вас есть 2 варианта здесь:

  1. Настройте свой код, чтобы использовать синтаксис , доступный до c # 4.0.

Возможно что-то вроде:

{"CameraPose", ConvertToken(CameraPose)},
{"Aspect", Aspect},
{"Image", Image.Id},
{"Fov", Fov},
{"IsAnchored", IsAnchored},
{"AnchorPosition", ConvertToken(AnchorPosition)},
{"DrawLines", ConvertToken(DrawLines)},
{"SurfaceDrawLines", ConvertToken(SurfaceDrawLines)}
  1. Сконфигурируйте ваш проект в Unity для использования более новой версии языка.

Следуйте этим инструкциям :

Edit->Project Settings->Player->Other Settings->Configuration->Scripting Runtime Version
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...