C#通過反射獲取類字段


 1 class RefSkill
 2 {
 3     int Id;
 4     string Name;
 5     string Desc;
 6 
 7     public RefSkill(int id, string name, string desc)
 8     {
 9         Id = id;
10         Name = name;
11         Desc = desc;
12     }
13 
14     public object GetValue(string enumTytpe)
15     {
16         object obj = null;
17 
18         try
19         {
20             FieldInfo info = GetType().GetField(enumTytpe, BindingFlags.Instance | BindingFlags.NonPublic);
21             if (null != info)
22             {
23                 obj = info.GetValue(this);
24             }
25         }
26         catch (Exception ex)
27         {
28             Console.WriteLine(ex.ToString());
29         }
30 
31         return obj;
32     }
33 }

定義枚舉,枚舉名字對應的是類中字段的名字:

1 public enum ERefSkill
2 {
3     Id,
4     Name,
5     Desc,
6 }

測試:

1 static void Main()
2 {
3     RefSkill refSkill = new RefSkill(12, "控制", "可以控制敵人1秒不動");
4     int id = (int)refSkill.GetValue((ERefSkill.Id).ToString());
5     Console.WriteLine(id);
6     Console.ReadKey();
7 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM