`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# это можно сделать в одной строке для удобства.