C#类的属性遍历及属性值获取

2023-05-16

1、定义一个类

public class Person
{
     public string Name { get; set; }
     public int ID { get; set; }
}

2、获取属性

方法一、定义一个类的对象获取

Person p = new Person();
foreach (System.Reflection.PropertyInfo info in p.GetType().GetProperties())
{
    Console.WriteLine(info.Name);
}

方法二、通过类获取

var properties = typeof(Person).GetProperties();
foreach (System.Reflection.PropertyInfo info in properties)
{
   Console.WriteLine(info.Name);
}

3、通过属性名获取对象属性值

p.Name = "张三";
var name = p.GetType().GetProperty("Name").GetValue(p, null);
Console.WriteLine(name);

4、完整代码及结果显示

复制代码

var properties = typeof(Person).GetProperties();
foreach (System.Reflection.PropertyInfo info in properties)
{
   Console.WriteLine(info.Name);
}
Console.WriteLine("另一种遍历属性的方法:");
 
Person p = new Person();
foreach (System.Reflection.PropertyInfo info in p.GetType().GetProperties())
{
   Console.WriteLine(info.Name);
}
            
Console.WriteLine("通过属性值获取属性:");
 
p.Name = "张三";
var name = p.GetType().GetProperty("Name").GetValue(p, null);
Console.WriteLine(name);
Console.ReadLine();

复制代码Type t = tc.GetType();//获得该类的Type

//再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了
foreach (PropertyInfo pi in t.GetProperties
{
object value1 = pi.GetValue(tc, null));//用pi.GetValue获得值
string name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作
//获得属性的类型,进行判断然后进行以后的操作,例如判断获得的属性是整数
if(value1.GetType() == typeof(int))
{
//进行你想要的操作
}
}
public int Pid
{
get { return pid; }
set { pid = value; }
}

 

 

//****************

  public void InitialProperty()//初始化设定
        {
            System.Reflection.PropertyInfo[] properties = this.GetType().GetProperties();
            foreach(var v in properties)
            {
               string type= v.PropertyType.Name;
                if (type=="String")
                {
                    v.SetValue(this,"456",null);
                }
                else if(type=="Bitmap")
                {
                    v.SetValue(this, new Bitmap(Image.FromFile("1.png")), null);
                }
               

            }
           

        }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#类的属性遍历及属性值获取 的相关文章

  • opencv学 之图像傅里叶变换dft

    一 前言 接触了图像的傅里叶变换 xff0c 数学原理依旧不是很懂 xff0c 因此不敢在这里妄言 下午用Opencv代码实现了这一变换 xff0c 有一些经验心得 二 关键函数解析 2 1copyMakeBorder 扩展图片尺寸 傅里叶
  • UML轻松入门之动态建模

    在UML中 xff0c 静态建模可以描述系统的组织结构 xff0c 而动态建模则可以描述系统的行为和动作 在动态建模机制中 xff0c 以消息完成对象之间的交互 xff0c 用状态图 顺序图 协作图和活动图来描述系统的行为 消息 在面向对象
  • C++实现 (FFT)一维快速傅里叶变换

    一维离散傅里叶变换的公式为 xff1a 如果直接基于该定义进行编程实现 xff0c 则算法时间复杂度为O N2 具体的编程实现我们已经在 C 43 43 实现一维离散傅里叶变换 中介绍过了 当一维信号长度达到几十万个信号时 xff0c 当前
  • 信号傅里叶变换后的实数和虚数部分理解

    傅里叶 xff08 FFT DFT 傅立叶 Fourier xff09 傅里叶变换的结果为什么含有复数 xff1f 为什么傅里叶变换的结果含有复数成份 xff1f 看了很多关于FFT的资料 xff0c 现在看到一个资料说FFT转换的结果是实
  • 从头到尾彻底理解傅里叶变换算法

    http www xuebuyuan com 2052774 html 经典算法研究系列 xff1a 十 从头到尾彻底理解傅里叶变换算法 上 作者 xff1a July dznlong 二零一一年二月二十日 推荐阅读 xff1a The S
  • 一维傅里叶变换后的复数怎样理解?

    我刚开始学傅氏变换也有这样的疑问 xff01 首先回答问题一 xff1a 为什么一个实信号经过傅氏变换后 xff0c 再反变换回来得到的是一个复数 这是由于matlab计算引起的 xff0c 你在计算傅氏反变换后引入了复数 xff0c 最后
  • 二维傅里叶变换是怎么进行的?

    1 首先回顾一下一维FT 通俗来讲 xff0c 一维傅里叶变换是将一个一维的信号分解成若干个三角波 对于一个三角波而言 xff0c 需要三个参数来确定它 xff1a 频率 幅度 A xff0c 相位 因此在频域中 xff0c 一维坐标代表频
  • 傅里叶变换和逆傅里叶变换numpy

    理论基础 时域 xff1a 以时间为横坐标 频域 xff1a 以频率的倒数为横坐标 xff0c 可以看出 xff0c 频域更加简单 相位 xff1a 与时间差有关的一个概念 傅里叶说 xff0c 任何连续周期信号 xff0c 可以由一组适当
  • 复数的物理意义

    很不错的文章 xff01 xff01 复数最直观的理解就是旋转 xff01 4 i i 61 4 就是 4 在数轴上旋转了180度 那么4 i就是旋转了90度 另外 xff0c e t是什么样呢 xff1f 但当你在指数上加上i之后呢 xf
  • 动态初始化一维数组详解

    动态初始化一维数组 1 动态初始化一维数组 xff0c 会在堆内存中分配这个数组 并且数组中每一个元素都采用默认值 byte short int long 0 float double 0 0 boolean false char u000
  • c语言之 malloc函数详解 在堆中动态分配内存malloc和new的区别

    一 原型 xff1a extern void malloc unsigned int num bytes 头文件 xff1a include lt malloc h gt 或 include lt alloc h gt 注意 xff1a a
  • 8086汇编与c++编译器就内存方面的感想

    8086汇编中可以手动分配栈内存 xff0c 没有堆内存的概念 xff0c 而c 43 43 编译器中栈是系统分配的 xff0c 堆是手动分配的
  • 2-NoSQL(非关系型数据库)-入门概述

    1 NoSQL是什么 xff1f NoSQL xff08 Not only SQL xff0c 不仅仅是数据库 xff09 xff0c 泛指非关系型数据库数据库 xff0c 其数据存储不需要固定的模式 xff0c 无需多余操作就可以横向扩展
  • 指针类型和指针类型转换的理解

    前几天在判断 值相同的两个指针所指向的变量的值可以不同 这句话时 xff0c 发现自己对指针类型一些概念仅仅是记住了结论 于是查阅了一些资料 xff0c 记录一下一些与指针类型和指针类型转化相关的知识 一些用到的 开始之前 xff0c 先来
  • 指针的动态初始化malloc与销毁free

    指针动态初始化 xff1a int p 61 int malloc sizeof int 3 初始化为指向3个元素的数组 if p exit 1 这个地方一定要进行判断 xff0c 因为若动态初始化不成功 xff0c 在使用p 0 p 1
  • C++ 简单实现HTTP GET/POST 请求

    HTTP 超文本传输协议 是一种客户端与服务端的传输协议 xff0c 最早用于浏览器和服务器之间的通信 xff0c 后来因为其使用灵活 方便等特点 xff0c 广泛用于客户端与服务端的通信 文章将简单介绍HTTP协议 xff0c 同时以C
  • c#的http服务器和客户端实例

    sever xff1a 业务逻辑 using System using System Collections using System IO using System Net using System Net Sockets using S
  • c++简单实现http协议服务器和客户端

    C 43 43 简单实现HTTP GET POST 请求 HTTP 超文本传输协议 是一种客户端与服务端的传输协议 xff0c 最早用于浏览器和服务器之间的通信 xff0c 后来因为其使用灵活 方便等特点 xff0c 广泛用于客户端与服务端
  • C/C++ http协议发送字段,文件,单个和多张图片

    关于c c 43 43 网络编程 xff0c 无论在linux还是windows 要说到自由性 xff0c 和安全性 xff0c socket无疑是比较好的 xff01 对于socket 因为它的传输协议只有两种tcp和udp 属于网络层
  • C# http 发送文件和接收文件的代码。

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

随机推荐

  • 图片与Byte相互转换,文件和字节流的转换方法

    lt summary gt 文件转化成byte 数组 lt summary gt lt param name 61 34 fileName 34 gt lt param gt lt returns gt lt returns gt priv
  • C++中使用TCP传文件

    在两个文件中都定义文件头和用到的宏 xff1a define MAX SIZE 10 define ONE PAGE 4096 struct FileHead char str 260 int size 在客户端发送接收阶段 xff1a 1
  • 理解协程并搞定协程相关面试题

    一 什么是协程 协程 xff1a 实现协作式多任务 xff0c 可以在程序执行内部中断 xff0c 转而执行其他协程 比如我们编写子程序 xff08 或者说函数 xff09 xff0c 通常是利用 调用 来实现从 A 跳去 B xff0c
  • C# 对象与JSON字符串互相转换的三种方式

    JSON JavaScript Object Notation JS 对象标记 是一种轻量级的数据交换格式 关于内存对象和JSON字符串的相互转换 xff0c 在实际项目中应比较广泛 xff0c 经过一番搜索 xff0c 找到如下三种方法来
  • HTTP 协议报文解析

    本篇主要是为了记录HTTP中报文的格式 xff0c 以便针对报文进行解析 首先会介绍基础的HTTP报文 xff0c 之后会介绍 文件上传时的数据报文格式 HTTP基础报文格式 按照HTTP报文类型进行介绍 xff0c HTTP报文类型分为请
  • C++实现通过UDP传输文件

    一 程序说明 1 本程序通过 UDP 来传输文件及其管理元数据 xff08 文件名 大小和日期等 xff09 xff0c 包括client cpp和server cpp xff0c 分别是客户端程序和服务端程序 2 文件以二进制形式传输 3
  • C/C++ ini配置文件的格式及如何读写ini配置文件

    一 ini配置文件的格式 为什么要用INI文件 xff1f 如果我们程序没有任何配置文件时 xff0c 这样的程序对外是全封闭的 xff0c 一旦程序需要修改一些参数必须要修改程序代码本身并重新编译 xff0c 这样很不好 xff0c 所以
  • C# Aspose.Words 插入纵页、横页、图片

    引用Aspose Words dll 对word文档进行操作 1 插入纵页或者横页 Document doc 61 new Document tempFile DocumentBuilder builder 61 new DocumentB
  • C#操作Word Aspose.Words组件介绍及使用 基本介绍与DOM概述

    1 基本介绍 Aspose Words是一个商业 NET类库 xff0c 可以使得应用程序处理大量的文件任务 Aspose Words支持Doc xff0c Docx xff0c RTF xff0c HTML xff0c OpenDocum
  • C# Aspose.Word 操作word文档(利用模板)

    上一篇我们介绍了用书签的方式来填充word中数据 xff0c 今天介绍第二种方法操作word xff01 依旧是先自己建好word模板 xff0c 然后这里就不需要插入书签了 1 建立模板 能看到红色标示的区域依旧用到了书签 xff0c 没
  • C#使用Aspose.Words操作word文档(利用模板2)

    最近接到个需求 xff0c 由于客服这边要导出大量有一定规则的word文件 xff0c 里面的内容希望系统自动填充 xff0c 例如 这里我使用Aspose Words dll这个类库 xff0c 1 首先 xff0c 我们需要创建模板文件
  • aspose 生成word 简单的文档操作

    1 使用Aspose Words 插件 这个插件的好处是 xff0c 发布网站的服务不需要安装office xff0c 也可以进行数据生成word文档 在生成word问当前需要我们先做好一个word模板 xff0c 需要在 xff1a 后边
  • Aspose.Word 的常见使用(不用模板创建)

    起因 因项目需要 xff0c 而且使用html转Word的时候 xff0c 样式不兼容问题 xff0c 于是只能使用Aspose Word通过代码生成 下面是通过DocumentBuilder来设计Word的 xff0c 但是和使用模型拼接
  • FileAlterationListenerAdaptor监听文件和文件夹

    背景 项目中有需要监听文件 文件夹的需求 xff0c 以便在文件 文件夹发生变化时出发相应的业务流程 这里使用Spring Boot 43 Apache Commons IO方案 另外 xff0c Apache Commons IO涉及到多
  • C# 设置word文档页面大小

    我们知道 xff0c 在MS word中 xff0c 默认的页面大小是letter 8 5 x11 xff0c 除此之外 xff0c word还提供了其他一些预定义的页面大小 xff0c 如Legal 5 4 x14 xff0c A3 11
  • C# 设置Word文档中图片的大小

    在创建Word文档时 xff0c 我们经常需要向文档中插入图片 xff0c 但插入图片的大小有时候可能会太大或太小 xff0c 这时候我们就需要对图片的大小进行调整 xff0c 使得图片与文章更加协调 美观 这篇文章将介绍如何使用Free
  • C#无损高质量压缩图片实现代码

    最近 xff0c 项目上涉及到了图像压缩 xff0c 发现原有的图像压缩功能 xff0c 虽然保证了图像的大小300K以内 xff0c 但是压缩后的图像看的不在清晰 xff0c 并且 xff0c 限定了图片的Height或者是Width 在
  • c# Bitmap byte[] Stream 文件相互转换

    byte 转图片 public static Bitmap BytesToBitmap byte Bytes MemoryStream stream 61 null try stream 61 new MemoryStream Bytes
  • bitmap与memoryStream转换bug

    image Save PicMainMs System Drawing Imaging ImageFormat Png Bitmap RawFormat获取格式会有异常情况encode为空的bug xff0c 所以设为System Draw
  • C#类的属性遍历及属性值获取

    1 定义一个类 public class Person public string Name get set public int ID get set 2 获取属性 方法一 定义一个类的对象获取 Person p 61 new Perso