反射技术示例

转载 2007年09月22日 00:50:00
1.2 反射技术示例 
       
下面是反射技术的示例,我们可以在程序去得时动态实例化对象,获得对象的属性,并调用对象的方法。
using System;
using System.Collections.Generic;
using System.Text;
 
namespace ReflectionDemo
{
    public class HelloWorld
    {
        private string strName = null;
        public HelloWorld(string name)
        {
            strName = name;
        }
        public HelloWorld()
        {
        }
        public string Name
        {
            get
            {
                return strName;
            }
        }
        public void SayHello()
        {
            if (strName == null)
            {
                System.Console.WriteLine("Hello World");
            }
            else
            {
                System.Console.WriteLine("Hello World,"+strName);
            }
        }
 
    }
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
 
namespace ReflectionDemo
{
        class Program
        {
            static void Main(string[] args)
            {
                System.Console.WriteLine("列出程序集中的所有类型");
                Assembly a = Assembly.LoadFrom ("ReflectionDemo.exe");
                Type[] mytypes = a.GetTypes( );
 
                foreach (Type t in mytypes)
                {
                  System.Console.WriteLine ( t.Name );
                }
                System.Console.ReadLine ( );
 
                System.Console.WriteLine ("列出HellWord中的所有方法" );
                Type ht = typeof(HelloWorld);
                MethodInfo[] mif = ht.GetMethods();
                foreach(MethodInfo mf in mif)
                {
                  System.Console.WriteLine(mf.Name);
                }
                System.Console.ReadLine();
 
                System.Console.WriteLine("实例化HelloWorld,并调用SayHello方法");
                Object obj = Activator.CreateInstance(ht); //调用无参数构造函数
 
                string[] s = {"zhenlei"};
                Object objName = Activator.CreateInstance(ht, s); //调用参数构造函数
 
                //BindingFlags flags = (BindingFlags.NonPublic|BindingFlags.Public|BindingFlags.Static|BindingFlags.Instance|BindingFlags.DeclaredOnly);
                MethodInfo msayhello = ht.GetMethod("SayHello");
                msayhello.Invoke(obj,null);
                msayhello.Invoke(objName,null);
                System.Console.ReadLine();
 
                }
            }
    }
 
举报

相关文章推荐

IT技术文章示例(附源码)

1、jquery+swfupload+servlet 多文件上传:http://www.ityangba.com/thread-49-1-1.html 2、java中代码值code转换为中文:htt...

网络扫描技术揭秘读书笔记2--扫描器中公用编程示例(1)

编程环境:工具  VS2010  MFC  使用字符集:Unicode  1.      CTreeCtrl控件的应用 在对话框中,放置一个CTreeCtrl树型控件,调整到合适的位置和大小,同时...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

VR系列——Oculus Audio sdk文档:三、Oculus对于Unity天然的声场定位技术(2)——通过示例探索Oculus本地空间移动音效

在开始之前,我们建议打开附带的演示场景‘红球绿球’(RedBallGreenBall),它提供了一个简单的OSNP资源介绍,并且演示了空间环绕移动音效的效果。   To get started, w...

谈谈服务器端推技术:Server-side Push 示例演示下载

上面有篇文章:异步请求分页示例:handler.ashx + $.ajax() + Json + 分页处理。今天要说的是跟上篇文章谈到的技术有一定关系的。本篇文章谈的Server-side Push技...

博文整理(编程技术深入解剖系列--Silverlight,WPF及实战示例)

这个系列主要针对的是Silverlight相关的编程技术,探讨层次比较深入,这里整理了一下,方便大家阅读: WPF架构关键技术剖析(1)--序言 WPF架构关键技术剖析(2)--XAML、对象序列...

PHP分页技术的代码和示例

本文来自:http://coolshell.cn/articles/5160.html 分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量...

DHTML技术综合演示---示例:下拉风格的菜单条2--用表格封装的

DHTML技术综合演示---示例:下拉风格的菜单条2--用表格封装的 table{ border:#00ff80 solid 1px; width:150px; } tabl...

在jsp中使用ajax技术示例:验证用户是否存在

首先说明一下几个名词的意思,我自己理解的 jquery 网上说是JavaScript库或框架。 ajax 一种可以进行异步通信的技术。 本实例用到了jquery库 具体实现步骤如下: ...

com技术组件第7章,用vs2005编译示例代码,com注册不成功。

com第7章,编译问题,解决方案

【技术类】【且听我说“镶嵌数据集”】10、镶嵌数据集影像管理与应用示例(完)

本篇列举典型示例描述镶嵌数据集影像管理流程及应用,具体包括利用镶嵌数据集管理原始影像,利用镶嵌数据集管理DEM产品,栅格函数模板实现影像渲染。      (1)镶嵌数据集管理原始影像 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)