zoukankan      html  css  js  c++  java
  • 学习c#反射的一个例子

    using System;
    using System.Reflection;

    namespace TestReflection
    {
      class Program
      {
        static void Main(string[] args)
        {
          IName name = AbstractFactory.GetName();
          name.ShowName();
        }
      }

      //抽象工厂类
      public class AbstractFactory
      {
        public static IName GetName()
        {
          string assemblyName = "TestReflection"//类库名字

          
    //className的值以后可以在Web.config动态获取
          
    //把className赋值为:TestReflection.EnglishName,将显示英文名字
          string className = "TestReflection.ChineseName";//类名字
          IName name = (IName)Assembly.Load(assemblyName).CreateInstance(className);
          return name;
        }
      }

      //声明一个接口,它有一个显示“名字”的功能
      public interface IName
      {
        void ShowName();
      }

      //实现接口,显示中国名字
      public class ChineseName : IName
      {
        public void ShowName()
        {
          Console.WriteLine("我中文名字叫:罗宾汉");
          Console.ReadLine();
        }
      }

      //实现接口,显示英文名字
      public class EnglishName : IName
      {
        public void ShowName()
        {
          Console.WriteLine("My name is : Robin Hood");
          Console.ReadLine();
        }
      }
    }
  • 相关阅读:
    【JLOI2011】飞行路线
    P3369 【模板】普通平衡树
    P1144 最短路计数
    P1462 通往奥格瑞玛的道路
    【NOIP2017】宝藏
    P1120 小木棍
    P3919 【模板】可持久化数组(可持久化线段树/平衡树)
    P3834 【模板】可持久化线段树 1(主席树)
    矩阵清零--进军硅谷
    二维数组搜素--进军硅谷
  • 原文地址:https://www.cnblogs.com/ewyb/p/2244411.html
Copyright © 2011-2022 走看看