私はこれらが何であるか分かりません。 documentationは非常に明確ではありません。BindingFlags列挙体でGetField、SetField、GetProperty、およびSetPropertyとは何ですか?
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
同意すると、混乱するかもしれません。 –