• C#通过属性名称获取(读取)属性值的方法 z


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace PropertyNameGetPropertyValueDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                Person ps = new Person();
                ps.Name = "CTZ";
                ps.Age = 21;
    
                Demo dm = new Demo();
                dm.Str = "String";
                dm.I = 1;
    
                Console.WriteLine(ps.GetValue("Name"));
                Console.WriteLine(ps.GetValue("Age"));
                Console.WriteLine(dm.GetValue("Str"));
                Console.WriteLine(dm.GetValue("I"));
            }
        }
    
        abstract class AbstractGetValue
        {
            public object GetValue(string propertyName)
            {
                return this.GetType().GetProperty(propertyName).GetValue(this, null);
            }
        }
    
        class Person : AbstractGetValue  
        {
            public string Name
            { get; set; }
    
            public int Age
            { get; set; }
        }
    
        class Demo : AbstractGetValue
        {
            public string Str
            { get; set; }
    
            public int I
            { get; set; }
        }
    }
    

     简化版

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace GetValue
    {
        class Program
        {
            static void Main(string[] args)
            {
                Person ps = new Person();
                ps.Name = "CTZ";
                ps.Age = 21;
    
                Console.WriteLine(ps.GetValue("Name"));
                Console.WriteLine(ps.GetValue("Age"));
            }
        }
    
        class Person
        {
            public string Name
            { get; set; }
    
            public int Age
            { get; set; }
    
            public object GetValue(string propertyName)
            {
                return this.GetType().GetProperty(propertyName).GetValue(this, null);
            }
        }
    }
    

     实质语句只有一句:

    this.GetType().GetProperty(propertyName).GetValue(this, null);
  • 相关阅读:
    【20211112】学习,为自己,也为别人
    【20211109】计划会使人拥有魔力
    【20211110】责任是不确性的克星
    【20211113】因材施教
    【20211119】责任能使人变得难以置信
    【20211115】连岳摘抄
    【20211106】连岳摘抄
    c#中用正则过滤所有标点符号
    带农历的JavaScript日期时间
    JQuery常用方法一览
  • 原文地址:https://www.cnblogs.com/zeroone/p/6160246.html
Copyright © 2020-2023  润新知