Ошибка (CS1519): "Недопустимый токен 'base' в объявлении класса, структуры или члена интерфейса"

Есть следующий код C# в Unity:

using System;
using UnityEngine;

[Serializable]
public class Flicker : MonoBehaviour
{
    public string waveFunction;
    public float base;
    public float amplitude;
    public float phase;
    public float frequency;
}

Однако почему-то он вызывает следующую ошибку:

CS1519 Недопустимый токен "base" в объявлении класса, записи, структуры или элемента интерфейса"

С чем это связано?


Ответы (1 шт):

Автор решения: CrazyElf

base - зарезервированное слово, не используйте его в названии поля. Но если очень хочется, то можно вроде бы экранировать его через символ @, имя будет тоже самое base на самом деле при сериализации/десериализации, это просто инструкция компилятору, что это не ключевое слово, а поле:

[Serializable]
public class Flicker : MonoBehaviour
{
    public string waveFunction;
    public float @base;
    public float amplitude;
    public float phase;
    public float frequency;
}

Подсмотрено на английском СО.

→ Ссылка