zoukankan      html  css  js  c++  java
  • C#反射Reflection

     
    是实现抽象工厂的基础,也是实现抽象工厂的核心技术,通过它,可以动态创建一个你想要的对象.如下面的例子是演示如何动态创建ChineseName或EnglishName的实例


    using System;
     2using System.Reflection;
     3namespace TestReflection
     4{
     5    class AXzhz_sReflectionExample
     6    {
     7        public static void Main()
     8        {
     9            IName name=AbstractFactory.GetName();
    10            name.ShowName();
    11        }

    12    }

    13
    14    public class AbstractFactory
    15    {
    16        public static IName GetName()
    17        {
    18            //s的值以后从Web.config动态获取
    19            //把s赋值为:TestReflection.EnglishName,将显示英文名
    20            string s = "TestReflection.ChineseName";
    21            IName name = (IName)Assembly.Load("TestReflection").CreateInstance(s);
    22            return name;
    23        }

    24    }

    25    
    26    //声明一个接口,它有一个显示"名字"的功能
    27    public interface IName
    28    {
    29        void ShowName();
    30    }

    31
    32    //实现接口,显示中国名字
    33    public class ChineseName : IName
    34    {
    35        public void ShowName()
    36        {
    37            Console.WriteLine("我叫AX!");
    38            Console.ReadLine();
    39        }

    40    }

    41
    42    //实现接口,显示英国名字
    43    public class EnglishName:IName
    44    {
    45        void IName.ShowName()
    46        {
    47            Console.WriteLine("My name is AXzhz!");
    48            Console.ReadLine();
    49        }

    50    }

    51}
  • 相关阅读:
    很特别的一个动态规划入门教程
    很特别的一个动态规划入门教程
    很特别的一个动态规划入门教程
    很特别的一个动态规划入门教程
    57.深度优先搜索 广搜练习:迷宫(未结题)
    UPC10525: Dove 打扑克
    UPC10532: 花
    UPC10544: 凉宫春日的叹息
    UPC3459: 移除字符
    UPC3457: Next K Permutation
  • 原文地址:https://www.cnblogs.com/shengel/p/1175846.html
Copyright © 2011-2022 走看看