close

什麼是屬性

public string Name { set; get; }

什麼是欄位

public string Name;

眼睛看起來的差別就是 { set; get; }

如果今天想要針對Class做個Foreach,抓取所有屬性與值

  Person person = new Person() { Name = "MARS", Age = 20 };
  foreach (var p in person.GetType().GetProperties())
   {
                var value = p.GetValue(person, null);
                Console.WriteLine($"{p.Name}:{value}");
   }

GetProperties裡面有可以放一下參數,像是

BindingFlags.Instance | BindingFlags.Public

這樣就可以只看到某些屬性就好

這樣也可以拿來比對,同樣是Person的物件,哪些欄位是一樣或是不一樣的,像下面這樣

  Type type = typeof(Person);
            var properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public);
            foreach (var p in properties)
            {
                var a1 = p.GetValue(person1, null);
                var a2 = p.GetValue(person2, null);
                Console.WriteLine($"{p.Name}:{a1} vs {a2}");
            }

 

arrow
arrow
    文章標籤
    C#
    全站熱搜
    創作者介紹
    創作者 軒軒的爸媽 的頭像
    軒軒的爸媽

    軒軒的爸媽

    軒軒的爸媽 發表在 痞客邦 留言(0) 人氣()