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();
        }
      }
    }
  • 相关阅读:
    c++之运算符
    C++开源库,欢迎补充。
    C++ 图像处理类库
    C++开源代码项目汇总
    视频会议及流媒体十大开源项目
    多媒体的框架
    C++开发资源汇总
    Juce之旅-第一个例子(图形窗口)
    Juce-强大的开源类库
    图像处理库的比较:OpenCV,FreeImage,CImg,CxImage
  • 原文地址:https://www.cnblogs.com/ewyb/p/2244411.html
Copyright © 2011-2022 走看看