5. Language guidelines

Строки

  1. Используем интерполяцию строк для объединения коротких строк.
  2. Отдаем предпочтение интерполяции строк, а не string.Format.
  3. Чтобы добавлять строки в цикле, используйте StringBuilder.

Пример интерполяции:

string displayName = $"{nameList[n].LastName}, {nameList[n].FirstName}";

Пример StringBuilder:

var phrase = "lalalalalalalalalalalalalalalalalalalalalalalalalalalalalala";
var manyPhrases = new StringBuilder();

for (var i = 0; i < 10000; i++)
{
    manyPhrases.Append(phrase);
}

Неявная типизация

  1. Используйте неявную типизацию для локальных переменных, когда тип переменной очевиден из правой части присваивания или когда точный тип не важен.
  2. Не используйте неявную типизацию, если тип не виден с правой стороны присваивания.
  3. Не полагайтесь на имя переменной, чтобы указать тип переменной.
  4. Используем неявную типизацию для определения типа переменной цикла for.
  5. Не используем неявную типизацию для определения типа переменной цикла foreach.
  6. При объявлении локальной переменной предпочтение отдавать ключевому слову var, а не явному указанию типа данных.

Тип очевиден:

var var1 = "This is clearly a string.";
var var2 = 27;

Тип не очевиден:

int var3 = Convert.ToInt32(Console.ReadLine());
int var4 = ExampleClass.ResultSoFar();

Пробелы

Обязательно наличие ровно одного пробела:

  1. С обеих сторон бинарного оператора, кроме оператора ..
  2. С обеих сторон ? и : тернарного оператора.
  3. С обеих сторон => в lambda expressions и expression body.
  4. С обеих сторон { и }.
  5. С обеих сторон : при наследовании, реализации интерфейсов и указании ограничений generic-параметров.
  6. После операторов if, while, for, foreach, switch, using.
  7. Между каждым из атрибутов для члена класса.
  8. После : при использовании именованного аргумента метода.
  9. После запятой при перечислении параметров метода.
  10. После // перед началом текста комментария.

Атрибуты

Группа атрибутов, относящаяся к одному объекту, должна указываться в одних квадратных скобках через запятую.

Фигурные скобки

Каждая фигурная скобка должна находиться на отдельной линии, причем соответствующие фигурные скобки должны быть выровнены по вертикали.

Числа

  1. При написании дробного числа необходимо целиком писать и целую, и дробную части.
  2. Для дробного числа необходимо использовать соответствующую букву на конце в нижнем регистре.
  3. Запрещено использование логики процентов внутри кода проекта, в том числе в [SerializeField].
  4. Вместо процентов везде должны использоваться дробные числа.
  5. Например, вместо интервала 0% - 100% должен использоваться интервал [0, 1].

События

Запрещено подписываться на ивенты неявно, например указанием вызываемого метода в компоненте внутри префаба, как это возможно для Unity-компонента Button.

Модификаторы

Модификатор override ставится после модификатора доступа.