0

如果您查看反射器中的 DataGridViewTextBoxCell 属性 ValueType,您可以看到它覆盖了 DataGridViewCell 中的一个属性。

奇怪的是,被覆盖的属性是只读的,而父类中的属性是可读写的。

我只能假设该属性已被遮蔽,并且反射器没有 ...erm .. 反映这一点。

这是正确的吗?

eta:我正在以 vb.net 的形式在反射器中查看源。

4

1 回答 1

1

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”开头。

由于您有两种方法,因此您可以独立地覆盖它们。

于 2009-09-08T00:00:45.530 回答