如果您查看反射器中的 DataGridViewTextBoxCell 属性 ValueType,您可以看到它覆盖了 DataGridViewCell 中的一个属性。
奇怪的是,被覆盖的属性是只读的,而父类中的属性是可读写的。
我只能假设该属性已被遮蔽,并且反射器没有 ...erm .. 反映这一点。
这是正确的吗?
eta:我正在以 vb.net 的形式在反射器中查看源。
如果您查看反射器中的 DataGridViewTextBoxCell 属性 ValueType,您可以看到它覆盖了 DataGridViewCell 中的一个属性。
奇怪的是,被覆盖的属性是只读的,而父类中的属性是可读写的。
我只能假设该属性已被遮蔽,并且反射器没有 ...erm .. 反映这一点。
这是正确的吗?
eta:我正在以 vb.net 的形式在反射器中查看源。
CLR 在内部将属性实现为方法。每个存取器都有一种方法。因此,如果您的属性是读/写的,您将有两种方法。如果您的方法是只读或只写的,那么您将只有一种方法。
如果您选择 IL 而不是 Visual Basic,您可以使用 Reflector 亲眼看到这一点。
.method public hidebysig specialname virtual instance class [mscorlib]System.Type get_ValueType() cil managed
如果您使用 ToString 方法...
.method public hidebysig virtual instance string ToString() cil managed
...您会注意到两者都以“.method”开头。
由于您有两种方法,因此您可以独立地覆盖它们。