Nie mam pojęcia, do czego one służą. documentation nie jest bardzo jasne:Co to są GetField, SetField, GetProperty i SetProperty w wyliczaniu BindingFlags?
GetField Określa, że wartość danego pola powinny być zwrócone.
SetField Określa, że należy ustawić wartość określonego pola.
GetProperty Określa, że wartość określonej właściwości powinna zostać zwrócona.
SetProperty Określa, że należy ustawić wartość określonej właściwości. W przypadku właściwości COM określenie tej flagi powiązania jest równoważne określeniu PutDispProperty i PutRefDispProperty.
Jeśli określę je w wyliczeniu BindingFlags
, co powrócą? Myślałem, że ma do czynienia z właściwości i pól typu, ale ten prosty test nie mówi:
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
Ten sam zestaw jest zwracana dla SetField
, GetProperty
i SetProperty
.
Och, widzę; mylące, aby zobaczyć ten sam zestaw flag używanych w 'GetMembers' .. – nawfal
Zgadzam się, może być trochę mylące. –