需要做一个功能,显示类内的属性名和对应的值。比如有类

Public Class SupervisedParams
    Public TestMode As string
    Public Time As String
    Public TorquePV As Single
    Public PrsPV As Single
End Class

这里用了公共字段代替属性,因为VB.NET没有自动属性,必须处理get set 实在麻烦。

需要显示:TorquePV =2.3

PrsPV =3.2        之类。

但一般只能获取类内字段的值,却不能取得这个字段的字符串形式。

后来查到了方法,测试代码如下:

【取得字段名的字符串形式】

Public Shared Sub WriteLine(ByVal params As SupervisedParams)
        Dim type As Type = params.GetType

Dim m() As MethodInfo = type.GetMethods【获取方法名】
        For Each item In m
            Debug.Print(item.Name)
        Next

Dim pi() As PropertyInfo = type.GetProperties【获取属性名】
        For Each item In pi
            Debug.Print(item.Name)
        Next

Dim fi() As FieldInfo = type.GetFields【获取字段名】
        For Each item In fi
            Debug.Print(item.Name)
            Debug.Print(item.GetValue(params))【还可以方向取得该字段的值】
        Next
    End Sub

MethodInfo 等几个关键类属于System.Reflection

传说中的反射啊,好高大上。等忙完了系统学习学习。

.NET 获取类内成员的名称,以字符串形式显示的更多相关文章

  1. java反射获取类的成员函数,成员变量,构造函数

    package com.imooc.reflect;import javax.sound.midi.Soundbank;import java.lang.reflect.Constructor;imp ...

  2. [javaSE] 反射-获取类的成员属性和构造方法

    成员属性和构造方法皆为对象,通过Class对象的方法可以得到 package com.tsh.reflect; import java.lang.reflect.Constructor; import ...

  3. C++中怎么获取类的成员函数的函数指针?

    用一个实际代码来说明. class A { public: staticvoid staticmember(){cout<<"static"<<endl;} ...

  4. C# - 获取类中属性的名称

    用反射控制的,不过获取属性名称的方法,用方法形式获取的,不知道消耗大不大 using System; using System.Collections.Generic; using System.Li ...

  5. java 反射获取类的属性 类型 名称和值

    /** * 获取属性类型(type),属性名(name),属性值(value)的map组成的list * */ private List getFiledsInfo(Object o){ Field[ ...

  6. 通过class类获取类的成员变量和构造函数信息

  7. 将从数据库中获取的数据 ,以HTML表格的形式显示

    1.HTML页面 <body> <form id="form1" runat="server"> <div id="di ...

  8. C++11类内static成员变量声明与定义

    众所周知,将一个类内的某个成员变量声明为static型,可以使得该类实例化得到的对象实现对象间数据共享. 在C++中,通常将一个类的声明写在头文件中,将这个类的具体定义(实现)写在cpp源文件中. 因 ...

  9. Java反射获取类和对象信息全解析

    反射可以解决在编译时无法预知对象和类是属于那个类的,要根据程序运行时的信息才能知道该对象和类的信息的问题. 在两个人协作开发时,你只要知道对方的类名就可以进行初步的开发了. 获取类对象 Class.f ...

随机推荐

  1. Quartz.NET在ASP.NET 中使用

    Quartz.NET 项目地址 http://quartznet.sourceforge.net/ common logging是一个通用日志接口,log4net是一个具体实现 ,也可以使用NLog, ...

  2. redisTemplate实现轻量级消息队列, 异步处理excel并实现腾讯云cos文件上传下载

    背景 公司项目有个需求, 前端上传excel文件, 后端读取数据.处理数据.返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可能十分耗时, 没 ...

  3. 使用Hexo & Github,搭建属于自己的博客

    经过在网上各种找资料,踩过各种坑,终于搭建好了hexo,直接与gitbub一起使用,搭建起自己的免费的博客. 关于Hexo Hexo是一款基于Node.js的静态博客框架. Hexo特性 风一般的速度 ...

  4. java8 Stream使用案例

    1. 原理 Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator. 原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执 ...

  5. POJ 1002 487-3279(map映照容器的使用)

    Description Businesses like to have memorable telephone numbers. One way to make a telephone number ...

  6. webstorm取消扫描某文件夹,加快打开速度,例如忽略node_modules目录

    方法1.如下图所示(只对当前项目有效) 或者 如果要使用这种方法,一种是还没安装依赖的时候先创建node_modules目录然后打开webstorm设置好excluded再安装:另一种是已经安装了依赖 ...

  7. ASP.NET开发,从二层至三层,至面向对象 (5)

    此是一系列博文,最后一篇了.也是面向初学者而作,望你们能有更好,更多对ASP.NET面向对编程了解与认识. 前一篇中<ASP.NET开发,从二层至三层,至面向对象 (4)>http://w ...

  8. 创建第一个MVC应用程序

    整个国庆期假,Insus.NET没有出门,在家静心修炼MVC.这意味着Insus.NET将来的日子里会以MVC为学习,开发,应用作为重点,不过现在才开始踏出第一步...... 路慢慢...... 下载 ...

  9. [android] fragment的生命周期和通讯

    重写一下生命周期方法 所有的fragment都是依附于activity的,只有当activity显示出来的时候,fragment才能够创建上去 onAttach,当附加到activity上的时候 on ...

  10. JSP与Servlet之间传值的一般方法,适合新手做练习

    #JSP与Servlet之间传值 Jsp与Servlet之间的传值有两种,一种是Jsp传值给Sevlet,另一种是Servlet传值给Jsp:使用request.response对象完成传值,具体实现 ...