using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection; namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
//TestClass.ShowMsg();
//TestClass.ShowMsg(new Message()); //Assembly asm = Assembly.GetExecutingAssembly();
//Object obj=asm.CreateInstance("ConsoleApplication2.Calculator",true);
//Calculator cal=(Calculator)obj; //Object[] parameters = new Object[2] { 3, 5 };
//Object obj1 = asm.CreateInstance("ConsoleApplication2.Calculator", true, BindingFlags.Default, null, parameters, null, null);
//Calculator cal = (Calculator)obj1; //Type t = typeof(Calculator);
//Calculator cal = new Calculator(3, 5);
//int result = (int)t.InvokeMember("Add", BindingFlags.InvokeMethod, null, cal, null);
//Console.WriteLine("result:" + result); //Type t = typeof(Calculator);
//Object[] parameters = new Object[2] { 3, 5 };
//t.InvokeMember("Add", BindingFlags.InvokeMethod, null, t, parameters); //Type t = typeof(Calculator);
//Calculator cal = new Calculator(3, 5);
//MethodInfo mi = t.GetMethod("Add", BindingFlags.Public | BindingFlags.Instance);
//mi.Invoke(cal, null); //Type t = typeof(Calculator);
//Object[] parameters = new Object[2] { 6, 9 };
//MethodInfo mi = t.GetMethod("Add", BindingFlags.Public | BindingFlags.Static);
//mi.Invoke(null, parameters); Console.ReadKey();
}
} public class Message { } public class TestClass
{
[Obsolete("请使用新方法")]
public static void ShowMsg()
{
Console.WriteLine("旧MSG");
} public static void ShowMsg(Message msg)
{
Console.WriteLine("新MSG");
}
} public class Calculator
{
private int x;
private int y;
public Calculator()
{
x = ;
y = ;
Console.WriteLine("Calculate()");
} public Calculator(int x, int y)
{
this.x = x;
this.y = y;
Console.WriteLine("Calculate(int x, int y)");
} public int Add()
{
int total = ;
total = x + y;
Console.WriteLine("invoke instance method");
Console.WriteLine(string.Format("{0}+{1}={2}", x, y, total));
return total;
} public static void Add(int x, int y)
{
int total = x + y;
Console.WriteLine("invoke static method");
Console.WriteLine(string.Format("{0}+{1}={2}", x, y, total));
}
}
}

第15章 .NET中的反射的更多相关文章

  1. .Net 中的反射(序章) - Part.1

    引言 反射是.Net提供给我们的一件强力武器,尽管大多数情况下我们不常用到反射,尽管我们可能也不需要精通它,但对反射的使用作以初步了解在日后的开发中或许会有所帮助. 反射是一个庞大的话题,牵扯到的知识 ...

  2. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

  3. 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化

    第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...

  4. [.net 面向对象程序设计进阶] (21) 反射(Reflection)(下)设计模式中利用反射解耦

    [.net 面向对象程序设计进阶] (21) 反射(Reflection)(下)设计模式中利用反射解耦 本节导读:上篇文章简单介绍了.NET面向对象中一个重要的技术反射的基本应用,它可以让我们动态的调 ...

  5. ASM:《X86汇编语言-从实模式到保护模式》第15章:任务切换

    15章其实应该是和14章相辅相成的(感觉应该是作者觉得14章内容太多了然后切出来了一点).任务切换和14章的某些概念是分不开的. ★PART1:任务门与任务切换的方法 1. 任务管理程序 14章的时候 ...

  6. java中的反射机制在Android开发中的用处

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反 ...

  7. 第15章 设备无关位图_15.3 DIB和DDB的结合

    第15章 设备相关位图_15.3 DIB和DDB的结合 15.3.1 从DIB创建DDB (1)hBitmap =CreateDIBitmap(…)——注意这名称会误导,实际上创建的是DDB 参数 说 ...

  8. unix network programming(3rd)Vol.1 [第13~15章]《读书笔记系列》

    第13章 守护进程和inetd 超级服务器 syslog() daemon_init() setuid() setgid() 第14章 高级IO 标准I/O函数库,支持3种缓冲 缓冲(读写存储设备(硬 ...

  9. perl5 第十二章 Perl5中的引用/指针

    第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用  子程序模板七.数组与子程序八.文件句 ...

随机推荐

  1. 在 Hibernate 中出现 database product name cannot be null 时怎么解决?

    今 天在做一个SH项目结合的时候忽然出现了,这样的错误,我开始也不知道怎么办,便上网查,看一些高手回答都是说,检查 hibernate.cfg.xml 这个配置文件,或是一些其它的配置,于是我便看了一 ...

  2. ubuntu12.04安装WineQQ2012

    1:下载WineQQ2012-20120531-Longene.deb 2:直接用软件中心安装或者执行命令,进入文件目录执行sudo dpkg -i WineQQ2012-20120531-Longe ...

  3. XML文档

    XML(Extensible Markuo Language)可标记扩展语言.它是一种以简单文本格式存储数据的方式,可以被任何计算机读取. XML文档里包含的元素都是可以自定义的. 1.XML文档声明 ...

  4. java httpclient cookie

    BasicCookieStore cookieStore = new BasicCookieStore();BasicClientCookie cookie = new BasicClientCook ...

  5. V8 data struct

    参考: [1]. 使用 Google V8 引擎开发可定制的应用程序: http://www.ibm.com/developerworks/cn/opensource/os-cn-v8engine/ ...

  6. dedecms讲解-arc.listview.class.php分析,列表页展示

    ./plus/list.php - 动态展示栏目列表页(也可能是频道封面)arc.listview.class.php 是dedecms的列表页的相关处理类__construct()         ...

  7. linux 配置 tomcat 自动发布脚本

    首先将打包好的 war 包(举例 management-20160809-1.0.war),传到 tomcat 的 webapps 目录下,然后在 tomcat 目录下新建 deploy.sh 脚本. ...

  8. ASP.NET 访问母版页元素总结

    第一种方法: 在母版页里面新建一个Label控件 <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="s ...

  9. vs2010 创建预编译头 Debug 正常 Release Link Error问题解决

    问题:创建预编译头 Debug 正常 Release Link Error Main.obj : error LNK2005: ___@@_PchSym_@00@UmfilkilqUdrmzkkUki ...

  10. 使用php技术实现无刷新的上传文件