Вы можете получить FieldInfo
для переменных в типе, используя метод GetField(...)
или GetFields(...)
для основного типа. Ниже приведена короткая программа, демонстрирующая, как вы можете это сделать:
class Program
{
public string mStringType = null;
static void Main(string[] args)
{
var program = new Program();
try
{
var field = program.GetType().GetField("mStringType");
Console.WriteLine("Field '{0}' is of type '{1}' and has value '{2}'.", field.Name, field.FieldType.FullName, field.GetValue(program));
program.mStringType = "Some Value";
Console.WriteLine("Field '{0}' is of type '{1}' and has value '{2}'.", field.Name, field.FieldType.FullName, field.GetValue(program));
}
catch (NullReferenceException)
{
Console.WriteLine("Error");
}
Console.ReadKey();
}
}
Это дает следующий вывод в окне консоли:
Поле 'mStringType' имеет тип 'System.String' и имеет значение ''.
Поле «mStringType» имеет тип «System.String» и имеет значение «Some Value».
Примечание. Если поля не public
, вам придется передать некоторые BindingFlags
в методы GetField(...)
или GetFields(...)
.