這是.NET反射的一個有趣小例子: 經過反射將變量值轉爲變量名自己. html
固然要先添加命名空間:using System.Reflection;this
示例代碼以下:spa
class Program { string name = "strA"; string strA = "strB"; string strB = "Hello World~"; static void Main(string[] args) { Program p = new Program(); p.GetTypeValue(); p.GetStrValue(p.name); p.SetStrValue(p.strA); Console.ReadKey(); } //本文原址:http://www.cnblogs.com/Interkey/p/3460566.html /// <summary> /// 獲取全部FieldInfo的值 /// </summary> void GetTypeValue() { Console.WriteLine("Method: GetTypeValue"); FieldInfo[] fis = this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance); foreach (FieldInfo fi in fis) { Console.WriteLine(fi.Name + " 的值爲:" + fi.GetValue(this).ToString()); } Console.WriteLine(); } /// <summary> /// 獲取字符串str對應的變量名的變量值對應的變量值 /// </summary> /// <param name="str"></param> void GetStrValue(string str) { Console.WriteLine("Method: GetStrValue"); Type type = this.GetType(); //獲取字符串str對應的變量名的變量值 Console.WriteLine(type.GetField(str, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this).ToString()); Console.WriteLine( type.GetField( type.GetField(str, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this).ToString(), BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this).ToString() ); Console.WriteLine(); } /// <summary> /// 設置字符串str對應的變量名的變量值 /// </summary> /// <param name="str"></param> void SetStrValue(string str) { Console.WriteLine("Method: SetStrValue"); //賦值前輸出 Console.WriteLine(this.GetType().GetField(str, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this)); //進行賦值操做 this.GetType().GetField(str, BindingFlags.NonPublic | BindingFlags.Instance).SetValue(this, "Hello Interkey~"); //賦值後輸出 Console.WriteLine(this.GetType().GetField(str, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this)); Console.WriteLine(); } //本文原址:http://www.cnblogs.com/Interkey/p/3460566.html }
代碼已經至關清晰,因此就很少作解釋了~code
本文原址:http://www.cnblogs.com/Interkey/p/3460566.htmlhtm
.NET的反射可參考:反射概述 或 瞭解.NET中反射機制的使用與分析。blog
.NET反射雖然執行效率相對較慢,但在軟件破解過程當中,做用卻很是大。這裏就留給有心人了~ip
本文的代碼已上傳到附件~ci
本文參考瞭如下文章:字符串
由於感受挺有意思的,因此就分享給你們~
還有,以爲有意思就頂吧~