Метод GetFields
Без флагов видны открытые поля
экземпляра. Закрытое поле ищут с
NonPublic | Instance.
Статическое поле требует
Static и не попадает в
один только Instance.
Синтаксис
FieldInfo[] fields = type.GetFields();
Пример
Давайте найти открытое поле
Open:
using System;
using System.Linq;
using System.Reflection;
class Gate
{
public int Open = 12345;
}
class Program
{
static void Main()
{
bool res = typeof(Gate).GetFields()
.Any(item => item.Name == "Open");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте увидеть закрытое поле
Secret:
using System;
using System.Linq;
using System.Reflection;
class Gate
{
private int Secret = 12345;
}
class Program
{
static void Main()
{
bool res = typeof(Gate).GetFields(
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly)
.Any(item => item.Name == "Secret");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте найти статическое поле
с флагом Static:
using System;
using System.Linq;
using System.Reflection;
class Gate
{
public static int Token = 12345;
}
class Program
{
static void Main()
{
bool res = typeof(Gate).GetFields(
BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly)
.Any(item => item.Name == "Token");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
FieldInfo,
описание поля -
BindingFlags,
флаги поиска -
GetProperties,
свойства -
GetMethods,
методы