DataGridViewTextBoxCell中的奇怪属性覆盖

时间:2009-09-07 22:36:57

标签: visual-studio winforms properties override reflector

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

奇怪的是,overriden属性是readonly,但是父类中的属性是读写的。

我只能假设该物业已经被遮蔽而且反射器没有......呃..反映这一点。

这是对的吗?

eta:我在反射器中查看源代码,如vb.net。

1 个答案:

答案 0 :(得分:1)

CLR在内部实现属性作为方法。每个进程都有一种方法。因此,如果您的属性是读/写,您将有两种方法。如果您的方法是只读的或只写的,那么您将只有一种方法。

如果您选择IL而不是Visual Basic,则可以使用Reflector自行查看。


.method public hidebysig specialname virtual instance class [mscorlib]System.Type get_ValueType() cil managed

如果您使用ToString方法进行comapre ...


.method public hidebysig virtual instance string ToString() cil managed

...你会注意到两者都以“.method”开头。

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