Differences with Reflector and ILDasm

Usually, my under-the-hood-of-.NET tool of choice is Reflector. Just recently, though, I ran into something that looked a little odd, so I had to use my 2nd-favorite tool of choice, ILDsam. Here's the situation - I have the following, simple class:

public class AClass
{
    private int value;

    public AClass(int aValue)
    {
        this.value = aValue;
    }
}

Now, here's what it looks like in ILDasm:

No surpises there. Now take a look at Reflector:

What strikes me as odd is that I'm seeing a no-argument constructor, methods like FastGetExistingType(), and so on. The reason they're showing up is because I have "Show Inherited Members" turned on under "View -> Options":

But I thought constructors weren't inherited? And what's also weird is that things like Equals(object, object) are showing. Static methods aren't stricly "inherited". I see that there's a "{ System.Object }" tag at the end of the method, though. Maybe the method tree view can be split into "Static" and "Instance" nodes. I don't know...it's not a big deal but it just surpised me to see constructors and static methods show up from the base class.

* Posted at 03.16.2006 02:33:08 PM CST | Link *

Blog History