日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过反射将变量值转为变量名本身

發布時間:2025/3/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过反射将变量值转为变量名本身 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過反射將變量值轉為變量名本身

這是.NET反射的一個有趣小例子:? 通過反射將變量值轉為變量名本身.?

當然要先添加命名空間:using System.Reflection;

示例代碼如下:

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}

代碼已經相當清晰,所以就不多做解釋了~

本文原址:http://www.cnblogs.com/Interkey/p/3460566.html

.NET的反射可參考:反射概述?或 了解.NET中反射機制的使用與分析。

.NET反射雖然執行效率相對較慢,但在軟件破解過程中,作用卻非常大。這里就留給有心人了~

本文的代碼已上傳到附件~

?

本文參考了以下文章:

C#里面中將字符串轉為變量名

通過字符串 反射 成類的實例

字符串轉為變量名,通過字符串給變量賦值

因為感覺挺有意思的,所以就分享給大家~

還有,覺得有意思就頂吧~

總結

以上是生活随笔為你收集整理的通过反射将变量值转为变量名本身的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。