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();
        }
      }
    }
  • 相关阅读:
    P3391 【模板】文艺平衡树(Splay)
    P4198 楼房重建
    P1491 集合位置
    P3957 跳房子
    P4016 负载平衡问题
    bzoj1077: [SCOI2008]天平 差分约束
    bzoj1151: [CTSC2007]动物园zoo 状压dp
    bzoj1076: [SCOI2008]奖励关 状压dp
    bzoj1226: [SDOI2009]学校食堂Dining 状压dp
    bzoj1879: [Sdoi2009]Bill的挑战 状压dp
  • 原文地址:https://www.cnblogs.com/ewyb/p/2244411.html
Copyright © 2011-2022 走看看