DIEMONIC
@DIEMONIC

CodeStyle C#, в каком порядке записывать структуры?

Предположим, имеется следующий код:

using System.Collections;
using UnityEngine;

public class Test : MonoBehaviour
{
    public int Field1;
    public int Field2 { get; private set; }

    [SerializeField] private debug _fieldForDebug;
    [SerializeField] private int _field3;

    private int _field4;
    private enum debug
    {
        value1 = 0,
        value2 = 1,
    }

    [Header("Links to instances")]
    [SerializeField] private Script script;

    private void Awake() 
    { 
        // ...
    }

    private void Start()
    {
        // ...
    }

    private void Update() 
    {
        // ...
    }

    public void function1()
    {
        // ...
    }

    private void function2()
    {
        StartCoroutine(enumerator3());
        // ...
    }

    private IEnumerator enumerator3()
    {
        // ...
    }

    private void function4()
    {
        // ...
    }
}


В правильном ли порядке здесь объявляются структуры?

С порядком объявления полей вроде как понятно, сначала идут публичные поля, затем поля с приватным сеттором, затем идут приватные сериализуемые, то есть доступные через редактор, и после них обычные приватные. Отдельно записаны сериализуемые ссылки на экземпляры.

С методами сложнее - сначала идут стандартные Unity-методы Awake (вызывается самым первым) и Start (оба вызываются сразу после запуска сцены), далее метод Update, который вызывается во время работы постоянно. Должен ли публичный метод function1 стоять до этих стандартных методов (ведь публичные структуры должны быть в начале)? Если код должен читаться сверху вниз в том порядке, в котором он выполняется, то function1 должен быть после. Должен ли метод function4 быть до нумератора enumerator3, если enumerator3 вызывается из function2?

Правильный ли здесь порядок структур? В каком порядке записали бы вы и почему? Есть ли какая-то документация, в которой описаны стандарты порядка объявления структур?
  • Вопрос задан
  • 460 просмотров
Пригласить эксперта
Ответы на вопрос 2
Нет никакого "правильного" или "стандартного" порядка.
Располагай в том порядке, какой тебе удобен и зафиксируй его в каком-то документе, если ты работаешь не один.
В идеале - настрой dotnet-format чтобы он сам сортировал всё в нужном порядке.

Обычно порядок примерно такой: Константы, статичные свойства, приватные поля, конструктор, публичные свойства, приватные свойства, публичные методы, приватные методы.

Но в целом он никак не влияет - лишь бы однородные элементы были рядом (например поля и свойства).
А методы всё равно через f12 искать будешь.
Ответ написан
Тут нет структур. Есть класс с полями, свойствами и методами. Для компилятора порядок расположения не важен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы