`FieldDeclarationSyntax` — это класс в Roslyn, представляющий **синтаксическое узел** объявления поля в коде C#. Этот узел описывает объявление одного или нескольких полей (переменных) в классе, структуре или интерфейсе. [[Как проверить, является ли поле константой в Roslyn]] ### Пример использования Находим все поля в коде всего файла ```csharp // Поиск всех объявлений полей в коде var fieldDeclarations = root.DescendantNodes() .OfType<FieldDeclarationSyntax>(); ``` Находим все поля определённого класса ```csharp // Находим все классы var derivedClasses = root.DescendantNodes() .OfType<ClassDeclarationSyntax>(); foreach (var derivedClass in derivedClasses) { // Получаем все поля класса var fields = derivedClass.Members.OfType<FieldDeclarationSyntax>(); ``` Получаем данные о поле ```csharp foreach (var fieldDeclaration in fieldDeclarations) { // Получение модификаторов var modifiers = fieldDeclaration.Modifiers; // Получение типа var variableType = fieldDeclaration.Declaration.Type; // Получение имён переменных foreach (var variable in fieldDeclaration.Declaration.Variables) { var identifier = variable.Identifier; } } ``` В конструкции fieldDeclaration.Declaration.Variables у поля может быть несколько имён, потому что в C# можно объявлять **несколько переменных** одного типа в одной строке. ```csharp fieldDeclaration.Declaration.Variables ``` Пример: ```csharp int a, b, c; ``` В этом примере объявляются три переменные (`a`, `b`, `c`) одного типа (`int`), и они все принадлежат одной декларации поля. Это эквивалентно тому, как если бы каждую переменную объявили на отдельной строке, но в C# это можно сделать в одной строке для удобства.