<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        .NET/C#利用反射調用含ref或out參數的方法示例代碼

        來源:懂視網 責編:小采 時間:2020-11-27 22:34:53
        文檔

        .NET/C#利用反射調用含ref或out參數的方法示例代碼

        .NET/C#利用反射調用含ref或out參數的方法示例代碼:前言 使用反射,我們可以很容易地在運行時調用一些編譯時無法確定的屬性、方法等。在.NET中的反射可以實現從對象的外部來了解對象(或程序集)內部結構的功能,哪怕你不知道這個對象(或程序集)是個什么東西,另外.NET中的反射還可以運態創建出對象并執行它
        推薦度:
        導讀.NET/C#利用反射調用含ref或out參數的方法示例代碼:前言 使用反射,我們可以很容易地在運行時調用一些編譯時無法確定的屬性、方法等。在.NET中的反射可以實現從對象的外部來了解對象(或程序集)內部結構的功能,哪怕你不知道這個對象(或程序集)是個什么東西,另外.NET中的反射還可以運態創建出對象并執行它

        前言

        使用反射,我們可以很容易地在運行時調用一些編譯時無法確定的屬性、方法等。在.NET中的反射可以實現從對象的外部來了解對象(或程序集)內部結構的功能,哪怕你不知道這個對象(或程序集)是個什么東西,另外.NET中的反射還可以運態創建出對象并執行它其中的方法。

        反射是.NET中的重要機制,通過反射,可以在運行時獲得程序或程序集中每一個類型(包括類、結構、委托、接口和枚舉等)的成員和成員的信息。有了反射,即可對每一個類型了如指掌。另外我還可以直接創建對象,即使這個對象的類型在編譯時還不知道。

        反射的用途:

        (1)使用Assembly定義和加載程序集,加載在程序集清單中列出模塊,以及從此程序集中查找類型并創建該類型的實例。

        (2)使用Module了解包含模塊的程序集以及模塊中的類等,還可以獲取在模塊上定義的所有全局方法或其他特定的非全局方法。

        (3)使用ConstructorInfo了解構造函數的名稱、參數、訪問修飾符(如pulic 或private)和實現詳細信息(如abstract或virtual)等。

        (4)使用MethodInfo了解方法的名稱、返回類型、參數、訪問修飾符(如pulic 或private)和實現詳細信息(如abstract或virtual)等。

        (5)使用FiedInfo了解字段的名稱、訪問修飾符(如public或private)和實現詳細信息(如static)等,并獲取或設置字段值。

        (6)使用EventInfo了解事件的名稱、事件處理程序數據類型、自定義屬性、聲明類型和反射類型等,添加或移除事件處理程序。

        (7)使用PropertyInfo了解屬性的名稱、數據類型、聲明類型、反射類型和只讀或可寫狀態等,獲取或設置屬性值。

        (8)使用ParameterInfo了解參數的名稱、數據類型、是輸入參數還是輸出參數,以及參數在方法簽名中的位置等。

        然而,如果方法的參數中包含 ref 或 out 關鍵字的時候,又該怎么調用呢?

        本文將介紹如何反射調用含 ref 或 out 關鍵字的方法。

        比如我們有這樣的類型:

        public class Walterlv
        {
         public string Get(string key)
         {
         }
        }

        那么反射的時候可以使用:

        var walterlv = new Walterlv();
        var value = (string) typeof(Walterlv).GetMethod("Get").Invoke(walterlv, new object[] { "key" });

        然而現在我們的函數是這樣的,帶一個 out 關鍵字的參數:

        public class Walterlv
        {
         public bool TryGet(string key, out string value)
         {
         }
        }

        事實上,無論是什么樣的方法,在反射式調用的都是同一個方法,即 Invoke。

        對于 out 和 ref 關鍵字的方法來說,會更新傳入的數組,也就是 Invoke 最后傳入的那個參數。所以其實我們只需要保存那個數組的實例,在調用完畢之后便能重新取出被修改的參數了。

        var walterlv = new Walterlv();
        var args = new object[] { "key", null };
        var value = (string) typeof(Walterlv).GetMethod("Get").Invoke(walterlv, args);
        // 在這里可以從 args 里面取出被 ref 或者 out 修改的參數。

        參考資料

      1. out, ref and InvokeMember !!! - CodeProject
      2. c# - How to pass a parameter as a reference with MethodInfo.Invoke - Stack Overflow
      3. 總結

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        .NET/C#利用反射調用含ref或out參數的方法示例代碼

        .NET/C#利用反射調用含ref或out參數的方法示例代碼:前言 使用反射,我們可以很容易地在運行時調用一些編譯時無法確定的屬性、方法等。在.NET中的反射可以實現從對象的外部來了解對象(或程序集)內部結構的功能,哪怕你不知道這個對象(或程序集)是個什么東西,另外.NET中的反射還可以運態創建出對象并執行它
        推薦度:
        標簽: 的方法 out 方法的
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 中文字幕亚洲乱码熟女一区二区 | 内射干少妇亚洲69XXX| 亚洲AV永久无码精品一百度影院| 亚洲成AV人片一区二区| 国产成人精品日本亚洲直接| 蜜桃传媒一区二区亚洲AV| 中国在线观看免费的www| 中国xxxxx高清免费看视频| 吃奶摸下高潮60分钟免费视频| 久久精品亚洲日本佐佐木明希| 永久免费AV无码网站国产| 亚洲免费综合色在线视频| 亚洲AV无码乱码在线观看| 久久久亚洲欧洲日产国码是AV| 精品国产_亚洲人成在线| 在线成人爽a毛片免费软件| 国产L精品国产亚洲区久久| 91在线亚洲综合在线| 久久国产精品免费视频| 免费在线不卡视频| 国产美女视频免费观看的网站| 女人与禽交视频免费看| 亚洲一区二区三区日本久久九| 一本岛高清v不卡免费一三区| 亚洲va中文字幕无码久久不卡 | 青青青国产在线观看免费| 国产亚洲精品影视在线| 国产片免费在线观看| 亚洲一区二区免费视频| 日本在线看片免费人成视频1000| 国产亚洲精品激情都市| 一个人看的免费视频www在线高清动漫| 人成午夜免费视频在线观看| 国产区图片区小说区亚洲区| 影音先锋在线免费观看| 国产精品福利在线观看免费不卡| 国产av无码专区亚洲国产精品| 中文字幕在线免费观看| 看亚洲a级一级毛片| 亚洲视频免费观看| 亚洲精品国产V片在线观看|