C#自省

C#自省

1、根据string,获取type。Type.GetType 方法,获取具有指定名称的 Type,执行区分大小写的搜索。

  

2、根据obj,获取type。Object.GetType 方法,获取当前实例的 Type

  

int n1 = 12;
int n2 = 82;
long n3 = 12;

Console.WriteLine("n1 and n2 are the same type: {0}",
                  Object.ReferenceEquals(n1.GetType(), n2.GetType()));
Console.WriteLine("n1 and n3 are the same type: {0}",
                  Object.ReferenceEquals(n1.GetType(), n3.GetType()));
// The example displays the following output:
//       n1 and n2 are the same type: True
//       n1 and n3 are the same type: False      

3、根据type,创建obj。Activator.CreateInstance 方法。

  

4、根据type,获取所有public 成员变量。Type.GetField 方法。

  

5、根据FieldInfo与string,设置obj的成员变量。FieldInfo.SetValue 方法。

  

6、根据obj,获取期成员变量类型。FieldInfo.FieldType 属性。

  

  结果为某个基元数据类型,如 String、Boolean 或 GUID。若要获取 FieldType 属性,请先获取 Type 类。 从 Type 获取 FieldInfo。 从 FieldInfo 获取 FieldType 值。

using System;
using System.Reflection;

// Make a field.
public class Myfield
{
    private string field = "private field";
}

public class Myfieldinfo
{
    public static int Main()
    {
        Console.WriteLine ("\nReflection.FieldInfo");
        Myfield Myfield = new Myfield();

        // Get the type and FieldInfo.
        Type MyType = typeof(Myfield);
        FieldInfo Myfieldinfo = MyType.GetField("field",
            BindingFlags.Instance|BindingFlags.NonPublic);

        // Get and display the FieldType.
        Console.Write ("\n{0}.", MyType.FullName);
        Console.Write ("{0} - ", Myfieldinfo.Name);
        Console.Write ("{0};", Myfieldinfo.GetValue(Myfield));
        Console.Write ("\nFieldType = {0}", Myfieldinfo.FieldType);
    return 0;
    }
}

7、获取所继承的接口。Type.GetInterfaces 方法。

  

参考:http://msdn.microsoft.com/zh-cn/library/6z33zd7h(v=vs.110).aspx

  

C#自省,布布扣,bubuko.com

时间: 2024-08-05 07:06:01

C#自省的相关文章

师者 自省者也

人过30又3年,历经平中有奇.近来迁至星城,始有闲暇,松神静坐,阅经冥思,劲风动而百树摇,其声哗然,而余身躯愈加明静,思至千里,扶摇直上,凭眺华严世界,万物皆有始终,皆有因缘,人有无明障,熙熙攘攘,斗转星移,成就世间无数功与名,以及落寞与悲凉.人形有百态,不自省而未断无名障者,皆同也.放逐自我,断却无明,和合万物,慧明自身,缘起缘灭,生死皆忘也. 版权声明:本文为博主原创文章,未经博主允许不得转载.

Python自省的威力

自省:是指代码可以查看内存中以对象形式存在的其它模块和函数,获取它们的信息,并对它们进行操作. 这种方法,你可以定义没有名称的函数,不按函数声明的参数顺序调用函数,甚至引用事先不知道名称的函数. Python允许函数参数有缺省值:如果调用函数时不适用参数,参数将获得它的缺省值.同时还可以使用命名参数,以任意的顺序指定参数.(有默认值的参数,就是可选的参数.) Python中的一部分内置函数: type函数 type函数可以接收任何东西作为参数,并返回它的数据类型. str函数 str函数将数据强

痛定思痛,重新做码农——来自三年Android工程师的自省书

4年前的这个时候,9月17号,第一次听百度的宣讲会,第一次投简历,第一次笔试,最后,第一次参加三轮面试,最终,人生的第一个offer到手. 所有的职场第一次,都给了百度. 当时得知百度在长沙只收了2个本科生(一个中南大学的,一个湖南师大(我)),突然感觉自己好幸运,周围的同学也觉得不可思议. 而现在,4年后,轮番面试,惨遭一轮游. 不得不,自省! 所以,4年前的offer真是幸运吗? 在别人玩的时候,我开始研究怎么赚广告费:多少个日日夜夜,从,不懂java,不懂android,不懂数据库,不懂p

Python自省(反射)指南

首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding: UTF-8 import sys #  模块,sys指向这个模块对象 import inspect def foo(): pass # 函数,foo指向这个函数对象   class Cat(object): # 类,Cat指向这个类对象     def __init__(self, name='kitty'):         self.name = name     def sayHi(self): #  实例方法,s

Python强大的自省简析

1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:"见贤思齐焉,见不贤而内自省也."(<论语·里仁>)当然,我们今天不是想说党员的批评与自我批评.表明意思上,自省(introspection)是一种自我检查行为.在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么.它知道什么以及它能做什么.自省向程序员提供了极大的灵活性和控制力.本文介绍了 Python 编程语言的自省能力.整个 Python 语

自省:工程管理

1.统一格式.统一风格. 2.禁止. 自省:工程管理,码迷,mamicode.com

基础入门_Python-模块和包.运维开发中inspect自省模块的最佳实践?

简单介绍: 说明: 此模块提供了一系列自省函数,可获取模块/类/方法/函数/traceback/帧对象/代码对象的信息 快速安装: 内置模块 测试相关: inspect.ismodule(object) -> True/False 说明: 判断object是否为模块 inspect.isclass(object) -> True/False 说明: 判断object是否为类 inspect.ismethod(object) -> True/False 说明: 判断object是否为方法

VO(DTO)存在的必要性,以及使用工厂模式+模版模式+自省实现可拓展VO

引子: 想起以前第一个项目的时候,使用springMvc+mybatis+restful实现一个论坛的网站,那个时候因为还不知道VO层的存在(因为一直使用MVC三层架构).为了不想重复写get,set方法(把po的数据封装到map或者新的bean),所以直接从数据库里面读取出来的po就直接封装成json反馈到前端,很多重要的数据字段如用户密码这些都直接抛给前端,数据泄漏了出去. 后来使用了数据库的视图方法,但是效果非常不好,视图的拓展性非常低,前端要求添加或者删除一个字段,都要从数据库底层开始改

python中的反射和自省

本文主要介绍Python中的反射和自省,以及该机制的简单应用 熟悉Java的程序员,一定经常和Class.forName打交道.即使不是经常亲自调用这个方法,但是在很多框架中(spring,eclipse plugin机制)都依赖于JAVA的反射和自省能力.而在python中,也同样有着强大的反射和自省能力,本文将做简单的介绍. 首先看一下自省,介绍一下几个重要的函数: dir函数,传入的参数是对象,返回该对象的所有属性和函数列表: 如: >>> import string >&g