重工电子论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2850|回复: 2

c# reflection 反射 委托

[复制链接]

286

主题

666

帖子

5519

积分

学生管理组

Rank: 8Rank: 8

积分
5519
发表于 2017-9-8 07:02:07 | 显示全部楼层 |阅读模式
本帖最后由 李维强-15级 于 2017-9-25 05:35 编辑

http://www.cnblogs.com/wangshenhe/p/3256657.html
下面是应用
通过函数名字符串执行相应的函数,用反射
[C#] syntaxhighlighter_viewsource syntaxhighlighter_copycode
using System;
namespace Ref
{
    class Program
    {
        static void Main(string[] args)
        {
            SayHello obj = new SayHello();
            Type type = typeof(SayHello);
            type.GetMethod("Say").Invoke(obj, new object[0]);
            Console.ReadKey(true);
        }
    }
 
    class SayHello
    {
        public void Say()
        {
            Console.WriteLine("Hello World!");
        }
    }
}



这里用委托
[C#] syntaxhighlighter_viewsource syntaxhighlighter_copycode
using System;
namespace Ref
{
    delegate  void dgtSayHello();
    class Program
    {
        static void Main(string[] args)
        {
            SayHello obj = new SayHello();
            obj.GetSayHello("SayCn")();
            Console.ReadKey(true);
        }
    }
    class SayHello
    {
        public void Say()
        {
            Console.WriteLine("Hello World!");
        }
        public void SayCn()
        {
            Console.WriteLine("世界你好!");
        }
        public void SayUs()
        {
            Console.WriteLine("Hello World!");
        }
        public dgtSayHello GetSayHello(string methodName)
        {
            switch (methodName)
            {
                case "SayCn":
                    return new dgtSayHello(this.SayCn);
                case "SayUs":
                    return new dgtSayHello(this.SayUs);
                default:
                    return new dgtSayHello(this.Say);
            }
        }
 
    }
}
回复

使用道具 举报

1

主题

3

帖子

49

积分

新手上路

Rank: 1

积分
49
发表于 2017-9-22 10:45:11 | 显示全部楼层
页面404了
回复

使用道具 举报

286

主题

666

帖子

5519

积分

学生管理组

Rank: 8Rank: 8

积分
5519
 楼主| 发表于 2017-9-25 05:36:02 | 显示全部楼层

重新贴了个出来
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|cqutlab ( 渝ICP备15004556号

GMT+8, 2024-3-29 03:30 , Processed in 0.172030 second(s), 28 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表