Как можно изменить эту часть кода? Ошибка вызвана тем что я пытаюсь использовать ее в C# 4 а она как я понял из C#6

118
13 декабря 2019, 14:30

Как можно изменить эту часть кода? Ошибка вызвана тем что я пытаюсь использовать ее в C# 4 а она как я понял из C# 6.0

Сама ошибка:

Assets/Game/Lang/LocalizationManager.cs(22,35): error CS1644: Feature `auto-implemented property initializer' cannot be used because it is not part of the C# 4.0 language specification

//вот тут ошибка
public static EnLanguageEvent ChangeLanguage { get; set; } = new EnLanguageEvent();  

Она вызывается тут

private void SelectLanguage(EnLanguage _language)
    {
        laguage = _language;
        ChangeLanguage.Invoke(laguage);
    } 
Answer 1

Можно исправить несколькими способами

  1. Как подсказали в комментарии, уберите инициализацию в момент объявления самого property и в конструкторе класса (если не MonoBehaviour наследник), или, например в методах Awake(), Start() (для MonoBehaviour наследников) добавьте hangeLanguage = new EnLanguageEvent();
  2. Создать приватную переменную, на которую и будет ссылаться property, заменив auto-property обычным

    private static EnLanguageEvent _changeLanguage = new EnLanguageEvent();
    public static EnLanguageEvent ChangeLanguage 
    {
          get { return _changeLanguage; } 
          set { _changeLanguage = value; } 
    }
    
READ ALSO
Парсинг картинок на C#

Парсинг картинок на C#

Есть небольшая проблемаПри парсинге картинок, долго подгружаются изображения в PictureBox(разрешение 140х215, было бы чему грузится)

128
Общая строка для двух RegEx

Общая строка для двух RegEx

Существует ли способ определить факт существования строки, удовлетворяющий двум regex в реальном времениНапример для

149
C# toast notification console application

C# toast notification console application

Взял пример консольное приложение для вывода уведомлений Windows 10Уведомления показываются, но не остаются в центре уведомлений, как допустим...

147