// cs_operator_typeof.cs
using System;
using System.Reflection;public class SampleClass
{
   public int sampleMember;
   public void SampleMethod() {}   static void Main()
   {
      Type t = typeof(SampleClass);
      // Alternatively, you could use
      // SampleClass obj = new SampleClass();
      // Type t = obj.GetType();      Console.WriteLine("Methods:");
      MethodInfo[] methodInfo = t.GetMethods();      foreach (MethodInfo mInfo in methodInfo)
         Console.WriteLine(mInfo.ToString());      Console.WriteLine("Members:");
      MemberInfo[] memberInfo = t.GetMembers();      foreach (MemberInfo mInfo in memberInfo)
         Console.WriteLine(mInfo.ToString());
   }
}
上面是MSDN中的typeof程序,运行结果是:
Methods:
Void SampleMethod()
System.Type GetType()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
Members:
Void SampleMethod()
System.Type GetType()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
Void .ctor()
Int32 sampleMember
这一句:MethodInfo[] methodInfo = t.GetMethods();是返回System.Type的所有公共方法,但是程序中没有这么多公共方法啊?
还有成员?
    本人是新手,请各位不吝赐教!

解决方案 »

  1.   

    因为所有的类都继承自object
    所以会有
    tostring,
    equals
    gettype等方法
      

  2.   

    你的意思是只要使用了继承自Object的类就会自动调用
    Boolean Equals(System.Object) 
    Int32 GetHashCode() ??
      

  3.   

    object的公共方法有Equals,GetHashCode,GetType,ReferenceEquals和ToString,为什么ReferenceEquals没有显示出来,是不是只有程序中用到的才显示?
    还有Void .ctor()是怎么一回事?
      

  4.   

    你调用的时候不就看到了还有Void .ctor()是怎么一回事?
    是构造函数(.ctor())
    msdn上有解释
    或者
    http://www.cnblogs.com/randomforce/archive/2007/09/03/880654.html