.net 取得类的属性、方法、成员及通过属性名取得属性值

//自定义的类
model m = new model();

//取得类的Type实例
//Type t = typeof(model); 

//取得m的Type实例
Type t = m.GetType(); 

string className = t.Name +"\r\n"; 

//获取所有方法
System.Reflection.MethodInfo[] methods = t.GetMethods(); 

//获取所有成员
System.Reflection.MemberInfo[] members = t.GetMembers(); 

//获取所有属性
System.Reflection.PropertyInfo[] properties = t.GetProperties(); 

//取得类的属性名并获取属性值
foreach (System.Reflection.PropertyInfo s in t.GetProperties())
{
    className  += s.Name + ":" + m.GetType().GetProperty(s.Name).GetValue(m, null).ToString() + "\r\n";
}

IEnumerable的几个简单用法:

public static void Print(IEnumerable myList)
        {
            int i = 0;
            foreach (Object obj in myList)
            {
                if (obj is Student)//这个是类型的判断,这里Student是一个类或结构
                {
                    Student s=(Student)obj;
                    Console.WriteLine("\t[{0}]:\t{1}", i++, s.Sname);
                }
                if (obj is int)
                {
                    Console.WriteLine("INT:{0}",obj);
                }
            }
            Console.WriteLine();
        }
时间: 2024-08-29 13:24:26

.net 取得类的属性、方法、成员及通过属性名取得属性值的相关文章

类的各种自带方法,静态方法,属性方法,类方法等

#coding=utf-8 class Dog(object): ''' 类的描述 ''' def __init__(self,name): self.name = name self.__food = None @staticmethod #实际上跟类没什么关系,单纯的函数,但是必须通过类名来调用 def eat(food): print ('%s is eating %s'%('xiaohuang',food)) @classmethod #类方法,只能访问类变量,不能访问实例变量 def

Objective-C——属性与成员变量辨析

上篇中提过,成员变量是在一对大括弧里面声明的:而属性是用先@property声明再用@synthesize合成的.属性是oc语言的一个新的机制,在实际的使用中这两者还是有不少差别的. 类中的成员变量.通过权限修饰符@protected.@private.@public更该它的被訪问权限.而属性是属于类的对象的,通过生成一个该类的对象我们就能够获得它的訪问权. FirstClass.h #import <Foundation/Foundation.h> @interface FirstClass

day8-Python学习笔记(十八)面向对象,self,私有,属性方法

面向对象编程:把以前你写的那些函数封装到一个类里面 类:定义类的时候,类名的首字母都大写,用类的话,必须得先实例化 构造函数:类被实例化的时候,它会自动的执行构造函数. 属性:类里面的变量方法:类里面的函数. self代表的是本类对象. 实例就是对象,实例变量和类变量 私有函数 私有变量 只能在类里面使用,出了类就不能用了. 继承 父类有的功能.变量子类全有. 如果定义的类,有很多重复功能的,那就可以把这些重复的类,定义成父类 封装 多态 python不支持多态 一种方法多种实现. 实例方法,必

鸡啄米:C++编程之十三学习之类与对象,类的声明,成员的访问控制

1. 本次学习鸡啄米课程第13篇,把比较重要的学习记录下来,以敦促自己更好的学习.推荐他们的网址学习:http://www.jizhuomi.com/school/c/97.html 2. 在面向过程的设计中,程序的模块是函数构成的,而面向对象设计中程序模块是类构成的,函数只是语句和数据的封装,而类是函数和数据的封装,做了一段C++之后,才明白这句话的意思.其实类就是一种自定义的数据类型.可以定义某个类类型的变量,用类定义的变量叫做类的对象,这种定义对象的过程叫做实例化. 3. 不过一直有个疑问

schema中的虚拟属性方法

schema中的虚拟属性方法相当于vue中的计算属性,它是通过已定义的schema属性的计算\组合\拼接得到的新的值 var personSchema = new Schema({ name: { first: String, last: String } }); var Person = mongoose.model('Person', personSchema); // create a document var bad = new Person({ name: { first: 'Walt

对Objective-C相关的类、方法、属性、成员变量介绍

类的定义@interface FirstClass :NSObject@end//@interface表示声明的是一个类,“:”表示继承关系,@end类的结束类的实现@implementation FirstClass方法的声明+(void)print;-(id)init;//"+"表示声明的是一个类方法,由雷鸣调用//“-”表示声明的时实例方法,必须由类的对象来调用//不带参数的方法在调用时,会使用隐藏的self参数来访问实例变量的属性.声明带参数的方法:+(void)initWit

Objective-C——类、方法、属性、成员变量

有过相关编程语言基础,了解C++/java的相信对类的类.对象等概念是了解的.在此我也不做过多地赘述. 关于OC中类的定义及方法使用这块,OC定义了一套自己的规范 类的定义: @interface FirstClass :NSObject @end //@interface表示声明的是一个类,":"表示继承关系,@end类的结束 类的实现 @implementation FirstClass 方法的声明: +(void)print; -(id)init; //"+"

5.Swift枚举|结构体|类|属性|方法|下标脚本|继承

1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左到右对应0,1,2,3 enum CompassPoint { case North case South case East case West //enum中可以定义方法 func show(){ print(self) } } //定义enum 变量 var p = CompassPoint.Nor

Python_day8_面向对象(多态、成员修饰符、类中特殊方法、对象边缘知识)、异常处理之篇

一.面向对象之多态 1.多态:简而言子就是多种形态或多种类型 python中不支持多态也用不到多态,多态的概念是应用与java/C#中指定传参的数据类型, java多态传参:必须是传参数的数据类型或传参的子类类型 面向对象总结: 面向对象是一种编程方式,此编程方式的实现是基于类和对象的使用 类:是一个模板,模板中包含了多个函数共使用,即类中可包含多个函数(类中的函数即叫做方法) 一般疑问: 1)什么样的代码才是面向对象? 简单来说,如果程序中的所有功能否是由 “类”和“对象”实现,那么就是面向对

类和对象:成员属性、成员方法 — 学习笔记3

类成员  类成员的访问控制PHP5中对类成员属性或成员方法的访问控制,是通过在其前面添加关键字 public(公有).protected(保护)或 private(私有)来实现的,如果没有设置这些关键字,则该成员方法被默认设置为 public. 类的访问控制权限具体应用规则如下:·由 public 所定义的类成员可以在任何地方被访问.·由 protected 所定义的类成员可以被其他所在类的子类和父类访问.·由 private 所定义的类成员只能被其所在类访问. 成员属性 在类中定义的变量称为成