Я понятия не имею, для чего они предназначены. documentation не очень понятно:Что такое GetField, SetField, GetProperty и SetProperty в перечислении BindingFlags?
GetField Указывает, что значение указанного поля должно быть возвращено.
SetField Указывает, что значение заданного поля должно быть установлено.
GetProperty Указывает, что значение указанного свойства должно быть возвращено.
SetProperty Указывает, что значение указанного свойства должно быть установлено. Для свойств COM указание этого флага привязки эквивалентно заданию PutDispProperty и PutRefDispProperty.
Если я укажу их в BindingFlags
перечислениях, что они должны вернуть? Я не думал, что это имеет отношение к свойствам и полям типа, но этот простой тест не говорит:
class Base
{
int i;
int I { get; set; }
void Do()
{
}
}
print typeof(Base).GetMembers(BindingFlags.GetField
| BindingFlags.Instance
| BindingFlags.NonPublic);
// Int32 get_I()
// Void set_I(Int32)
// Void Do()
// Void Finalize()
// System.Object MemberwiseClone()
// Int32 I
// Int32 i
// Int32 <I>k__BackingField
Тот же набор возвращается для SetField
, GetProperty
и SetProperty
.
О, я вижу; смущаясь видеть тот же набор флагов, что и в 'GetMembers'. – nawfal
Согласитесь, может быть, это путаница. –