modified from msdn

// reflection_typeof_operator.cs
using System;
using System.Reflection;

public class SampleClass
{
public int sampleMember;
public int SampleMethod() { int n = 2, m = 4; return n * m ;}
public SampleClass(){ Console.WriteLine("Constructor evoked ");}
~SampleClass(){ Console.WriteLine("Desstructor evoked ");}
}

class test
{
static void Main()
{
Type t = typeof(SampleClass);
// Alternatively, you could use
// SampleClass obj = new SampleClass();
// Type t = obj.GetType();
SampleClass sc = new SampleClass();
Console.WriteLine(" did something in the method : " + sc.SampleMethod());
Console.WriteLine("Methods:");
MethodInfo[] mi = t.GetMethods();

foreach (MethodInfo mInfo in mi)
Console.WriteLine(mInfo.ToString());

Console.WriteLine("Members:");
MemberInfo[] memi = t.GetMembers();

foreach (MemberInfo mInfo in memi)
Console.WriteLine(mInfo.ToString());
Console.ReadLine();
}

}