(C#基础)反射理解
这个知识点很基础。
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace dazilianxi
{
public class book:IComparable
{
private int price;
private string title;
public book() { }
public book(int price ,string title)
{
this.price = price;
this.title = title;
}
public int Price
{
get { return this.price; }
} public string Title {
get { return this.title; }
} #region IComparable 成员 public int CompareTo(object obj)
{
book mbook = (book)obj;
return this.Price.CompareTo(mbook.Price);
}
public string DisplayName(string name)
{
return string.Format("学生姓名:{0}", name);
} #endregion
}
}
运行的main中代码:
/*
Type type = Type.GetType("dazilianxi.book");
Console.WriteLine(type.Name);
Console.WriteLine(type.FullName);
Console.WriteLine(type.Namespace);
//获取属性
PropertyInfo[] info = type.GetProperties();
foreach( PropertyInfo item in info )
{
Console.WriteLine(item.Name);
} Console.WriteLine("下面试方法");
//获取方法
MethodInfo[] meth = type.GetMethods();
foreach(MethodInfo me in meth)
{
Console.WriteLine(me.ReturnType.Name);
Console.WriteLine(me.Name);
}
*/
book lob = new book( ,"好书刊"); //获取运行时的程序集
Assembly asm = Assembly.GetExecutingAssembly();
//获取运行时的Type类型
Type type = asm.GetType("dazilianxi.book"); //获取运行时的对象实例
object stu = Activator.CreateInstance(type); //获取运行时指定方法
MethodInfo method = type.GetMethod("DisplayName");
object[] parameters = new object[];//定义参数数组
parameters[] = "88lll";//参数赋值
// parameters[1] = "hello";
//触发运行时的方法
string result = (string)method.Invoke(stu, parameters);//得到实例参数结果值
Console.WriteLine(result);
参考:http://www.cnblogs.com/darrenji/p/3817999.html
(C#基础)反射理解的更多相关文章
- Java基础之理解Annotation(与@有关,即是注释)
Java基础之理解Annotation 一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata) ...
- Java基础-反射(reflect)技术详解
Java基础-反射(reflect)技术详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类加载器 1>.JVM 类加载机制 如下图所示,JVM类加载机制分为五个部分 ...
- css基础--深入理解opacity和rgba的区别
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 首先这两个都与透明度有关,那么他们之间有什么具体的区别呢?在实际工作中我们需要注意什么呢?请您接着往下看 语法 1. rg ...
- Java 高级基础——反射
Java 高级基础--反射 反射的意义:Java 强类型语言,但是我们在运行时有了解.修改信息的需求,包括类信息.成员信息以及数组信息. 基本类型与引用类型 基本类型,(固定的 8 种) 整数:byt ...
- Java反射理解(五)-- 方法反射的基本操作
Java反射理解(五)-- 方法反射的基本操作 方法的反射 1. 如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2. 方法反射的操作 method.invoke(对象,参数列表) ...
- Java反射理解(四)-- 获取成员变量构造函数信息
Java反射理解(四)-- 获取成员变量构造函数信息 步骤 获取成员变量信息: obj.getClass() 获取类类型对象 成员变量也是对象,java.lang.reflect.Field 类中封装 ...
- Java 反射理解(三)-- Java获取方法信息
Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void ...
- Java 反射理解(二)-- 动态加载类
Java 反射理解(二)-- 动态加载类 概念 在获得类类型中,有一种方法是 Class.forName("类的全称"),有以下要点: 不仅表示了类的类类型,还代表了动态加载类 编 ...
- Java 反射理解(一)-- Class 类的使用
Java 反射理解(一)-- Class 类的使用 概念 这里阐述几个基本概念: 在面向对象的世界里,万事万物皆对象.(在 Java 语言中,静态的成员.普通数据类型除外) 类也是对象,类是 java ...
随机推荐
- win32 自定义右键菜单
/**************************************************************************** 几大主要问题: 1.通过处理WM_MOUSE ...
- 加强树状数组luogu3368
暴力树状数组30分,这该怎么办: 知识点回顾 差分数组中 开头结尾改变了值之后 求他的前缀,发现区间内所有数都改变 然后我们做差分树状数组 #include<cstdio> using n ...
- win10 系统变量迁移
经常要重装电脑,自己的很多配置都要重新手动配置,其中就包括系统变量 系统变量在注册表中存在 win+R regedit HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\ ...
- UVA 3942 Remember the Word (Trie+DP)题解
思路: 大白里Trie的例题,开篇就是一句很容易推出....orz 这里需要Trie+DP解决. 仔细想想我们可以得到dp[i]=sum(dp[i+len[x]]). 这里需要解释一下:dp是从最后一 ...
- 让低版本浏览器支持html5的标签
原理就是首先用js的createElement来创建,之后在使用 document.createElement('header'); <header> <hgroup>头部信息 ...
- mysql删除sql表添加别名及删除sql的注意事项
本文为博主原创,未经允许不得转载: 根据平常的习惯,个人会将操作的表后面添加一个别名,无论是使用还是不使用的时候,均是为了 修改还是扩展sql的时候更加安全,方便,快捷. 今天在写删除的sql时,对表 ...
- python ros 重新设置机器人的位置
#!/usr/bin/env python import rospy import math from tf import transformations from geometry_msgs.msg ...
- python 时间元组转可视化时间(自定义)
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) '2019-01-04 11:20:25'
- Java 面向对象之继承和重写OverWrite,重写和重载的区别,抽象类
01继承的概述 A:继承的概念 a:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系 b:在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作 ...
- CentOS Gnome字体不清晰
需要安装字体:dejavu-sans-mono-fonts The package you need to install is dejavu-sans-mono-fonts. This is the ...