• c# 反射小Demo


    今天看了一下C#的反射,之前一直感觉反射是一种很高大上的东东,现在才发现不过是纸老虎而以.

    所谓的反射就是,只是知道一个它是一个对象不知道其中有什么字段方法属性等,而反射就是用来获取一个未知对象的字段方法事件等.

    下面是从网上看到的一个小例子,

        class Person
        {
            private string _Name;
            private int _Age;
            private string _Sex;
    
            public string Name
            {
                get { return this._Name; }
                set { this._Name = value; }
            }
    
            public int Age
            {
                get { return this._Age; }
                set { this._Age = value; }
            }
    
            public string Sex
            {
                get { return this._Sex; }
                set { this._Sex = value; }
            }
        }

    上面写的是需要操作的类,下面是进行实地操作

     class Program
        {
            static void Main(string[] args)
            {
                Person person = new Person();
                person.Name = "snoopy";
                person.Age = 5;
                person.Sex = "male";
    
                //
                PropertyInfo[] infos = person.GetType().GetProperties();
                //获取属性 (只限字段)
                foreach (PropertyInfo info in infos)
                {
                    
                    Console.WriteLine("属性的类型是" + info.PropertyType + "属性的名称是" + info.Name + ":" +  "属性的数值是" + info.GetValue(person, null));
                }
    
    
    
                Console.WriteLine("设置Person.Name = Hellokitty");
                //设置属性
                foreach (PropertyInfo info in infos)
                {
                    if (info.Name == "Name")
                    {
                        info.SetValue(person, "Hellokitty", null);
                    }
                }
            }
        }
  • 相关阅读:
    BZOJ4569: [Scoi2016]萌萌哒
    BZOJ4566: [Haoi2016]找相同字符
    BZOJ4556: [Tjoi2016&Heoi2016]字符串
    BZOJ4545: DQS的trie
    BZOJ4458: GTY的OJ
    Codeforces Beta Round #19E. Fairy
    不确定性推理
    朴素贝叶斯
    对抗搜索
    struct
  • 原文地址:https://www.cnblogs.com/mawanli/p/7081183.html
Copyright © 2020-2023  润新知