⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch6_1.cs

📁 《c#技术内幕代码》
💻 CS
字号:
using System;
using System.Reflection;

class CH6_1 
{
    public static void ShowInterfaces( Type t )
    {
       Type[] interfaces = t.GetInterfaces();
       Console.WriteLine("Implemented Interfaces");
       foreach (Type type in interfaces) 
       {
           Console.WriteLine ("Interface : {0}", type.FullName);
           if ( type.IsPublic )
	      Console.WriteLine("Scope: Public" );
	   else
	      Console.WriteLine("Scope: Private" );
       }       
    }
    public static void ShowEvents ( Type t )
    {
       EventInfo[] events = t.GetEvents();
       Console.WriteLine("Implemented Events");
       foreach (EventInfo e in events) 
       {
           Console.WriteLine("Event name: {0}", e.Name );
	   Console.WriteLine("Multicast: {0}", e.IsMulticast ? "Yes" : "No" );
	   Console.WriteLine("Member Type {0}", e.MemberType.ToString() );
       }
    }
       
    
    public static void ShowTypes( string name, Assembly assembly )
    {
        Type[] typeArray = assembly.GetTypes ();

       Console.WriteLine ("Assembly Name: {0}", name);
       foreach (Type type in typeArray) 
       {
	   if ( type.IsClass )
	   {
              Console.WriteLine ("\nNamespace : {0}", type.Namespace);
              Console.WriteLine ("Class : {0}", type.FullName);
              if ( type.BaseType != null )
                  Console.WriteLine ("Base Class : {0}", type.BaseType.FullName);
	      else
	          Console.WriteLine ("Class not derived from anything");
	       
              // Check if abstract
              if ( type.IsAbstract )
                 Console.WriteLine("Abstract base class");
	      else
	         Console.WriteLine("Instantiable class");
	      if ( type.IsPublic )
	         Console.WriteLine("Scope: Public" );
	      else
	         Console.WriteLine("Scope: Private" );
              ShowInterfaces( type );
	      ShowEvents( type );
           }
	   else
  	      if ( type.IsInterface )
              {
                 Console.WriteLine ("\nNamespace : {0}", type.Namespace);
                 Console.WriteLine ("Interface : {0}", type.FullName);
                 if ( type.IsPublic )
                    Console.WriteLine("Scope: Public" );
	         else
	            Console.WriteLine("Scope: Private" );
  	      }
	      else
  	         if ( type.IsEnum )
    	         {
	            Console.WriteLine("\nEnumeration: {0}", type.FullName );
 	         }
	         else
	            Console.WriteLine("\nType: {0}", type.FullName );
       }
    }
    

    public static void Main (string[] args) 
    {
       for ( int i=0; i<args.Length; ++i )
       {
           // Get the assemble object (from System.Reflection)
           Assembly assembly = Assembly.LoadFrom (args[0]);
	   
           ShowTypes( args[0], assembly );
       }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -