亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

關于C#基礎知識回顧--反射(一)

2020-01-24 03:12:25
字體:
來源:轉載
供稿:網友

反射(reflection)是一種允許用戶獲得類型信息的C#特性。術語“反射”源自于它的工作方式:
Type對象映射它所代表的底層對象。對Type對象進行查詢可以獲得(反射)與類型相關的信息。反射是一種
功能強大的機制,它允許學習和使用只在運行時才能知道的類型功能。

這些是官方定義,其實說白了,反射就是能知道我們未知類型的類型信息這么一個東西.沒什么神秘可講!
反射的核心是System.Type。System.Type包含了很多屬性和方法,使用這些屬性和方法可以在運行時得到類型信息。
一旦得到類型信息,就可以調用其構造函數、方法和屬性。因此,反射允許使用編譯時不可用的代
碼。因為反射涉及內容太多,我們主要學習常用的反射技術。

一、獲取方法的相關信息
一旦有了Type對象,就可以使用GetMethods()方法來獲取此類型支持的方法的列表。它的一種形式為:
MethodInfo[] GetMethods()
MethodInfo對象描述了主調類型所支持的方法,因此可以通過它的Name屬性獲得方法的名稱。同時它還有兩個重
要的方法,ReturnType和GetParameters()。
  
只讀屬性ReturnType為一個Type類型的對象,它為用戶提供方法的返回類型信息。
GetParameters()返回一個方法的參數列表,它的基本形式為:
ParameterInfo[] GetParameters();
參數信息保存在ParameterInfo對象中。ParameterInfo類定義了大量描述參數信息的屬性和方法。
其中常用屬性是Name和ParameterType,這兩個屬性我就不介紹了,從字面上應該可以理解了。
好了,不說了,講了這么多概念想必大家都不耐煩了。下面我們先看代碼示例,估計你看了以后,再結合上面的
概念講解,你一定會說:哦,原來如此!??!

復制代碼 代碼如下:

class MyClass
    {
        int x;
        int y;
        public MyClass(int i, int j)
        {
            x = i;
            y = j;
        }
        public int Sum()
        {
            return x + y;
        }
        public bool IsBetween(int i)
        {
            if (x < i && i < y)
                return true;
            else
                return false;
        }
        public void Set(int a, int b)
        {
            x = a;
            y = b;
        }
        public void Set(double a, double b)
        {
            x = (int)a;
            y = (int)b;
        }
        public void Show()
        {
            Console.WriteLine("x:{0},y:{1}", x, y);
        }
    }

運行結果:



請注意,除了MyClass定義的方法外,object定義的方法也會被顯示。這是因為C#所有的類都繼承于object。
另外,類型名稱(如Int32)采用的是.net結構的名稱。

二、GetMethods()的另外一種形式
這種形式中可以指定各種標記,以此篩選出想要獲取的方法,它的基本形式:
MethodInfo[] GetMethods(BindingFlags flags)
這種形式只獲得與所指定的條件相匹配的方法,BindingFlages 是一個枚舉,相關知識請參考:
msdn上BindingFlags 枚舉

可以使用OR運算符把兩個或者更多的標記連接在一起。實際上,括號中至少應包含Instance(或Static)
與Public(或NotPublic)標記,否則將不會獲得任何方法。

GetMethods()方法的BindingFlages形式的一個主要用途在于,它可以只獲得某個類自身定義的方法而不
獲得它從基類繼承的方法,這對于object尤其有用。
例如用下列形式來替換前面程序中的GetMethods()語句:

復制代碼 代碼如下:

MethodInfo[] mi = t.GetMethods(BindingFlags.DeclaredOnly |
BindingFlags.Instance |
BindingFlags.Public);

進行上述更改后,程序的輸出結果為:



可以看出,這里只顯示了MyClass顯示定義的方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲人成网站在线观看| 成人信息集中地欧美| 日韩大片在线观看视频| 日韩精品视频中文在线观看| 中文字幕亚洲无线码在线一区| 欧美国产乱视频| 国产丝袜精品第一页| 久久久国产精品免费| 最近2019中文字幕在线高清| 亚洲精品欧美极品| 人人爽久久涩噜噜噜网站| 亚洲情综合五月天| 97在线免费观看| 高跟丝袜一区二区三区| 欧美一区二区影院| 青青在线视频一区二区三区| 久久久亚洲精品视频| 国产亚洲一区精品| 亚洲电影av在线| 亚洲免费小视频| 国产999精品久久久| 日韩三级影视基地| 国产精品一区二区久久精品| 国产精品爽爽爽爽爽爽在线观看| 久热爱精品视频线路一| 性欧美办公室18xxxxhd| 国产精品电影一区| 欧美性受xxx| 在线观看免费高清视频97| 国产成人极品视频| 久久久噜噜噜久久中文字免| 国产精品欧美日韩一区二区| 成人免费视频网址| 欧美在线不卡区| 色综合导航网站| 2019中文在线观看| 久久激情视频免费观看| 一本一本久久a久久精品牛牛影视| 97视频com| 久久久精品国产| 高清欧美性猛交xxxx| 久精品免费视频| 好吊成人免视频| 欧美黑人极品猛少妇色xxxxx| 国产精品夫妻激情| 亚洲成av人片在线观看香蕉| 91麻豆国产精品| 精品色蜜蜜精品视频在线观看| 欧美体内谢she精2性欧美| 欧美一二三视频| 精品女同一区二区三区在线播放| 亚洲人成伊人成综合网久久久| 亚洲男人天堂九九视频| 亚洲美女免费精品视频在线观看| 国产主播欧美精品| 国产第一区电影| 性色av一区二区三区免费| 国产精品影院在线观看| 亚洲第一福利在线观看| 国内外成人免费激情在线视频| 国产成人福利网站| 91免费人成网站在线观看18| 欧美视频二区36p| 日韩在线视频一区| 亚洲一区二区三区乱码aⅴ蜜桃女| 激情成人在线视频| 在线观看精品国产视频| 深夜福利国产精品| 日韩av网站导航| 日韩中文字幕网址| 日韩美女视频免费在线观看| 亚洲欧美日韩国产成人| 尤物yw午夜国产精品视频明星| 亚洲最大av网| 欧美成人午夜激情在线| 国产欧美婷婷中文| 久久国产精品久久精品| 日本午夜在线亚洲.国产| 成人黄色av网站| 91中文精品字幕在线视频| 影音先锋欧美在线资源| 亚洲免费av网址| 日韩电影中文字幕av| 亚洲视频在线观看| 国产精品美女免费看| 久久久www成人免费精品张筱雨| 亚洲成av人片在线观看香蕉| 亚洲欧美日韩国产精品| 成人网页在线免费观看| 欧美在线免费观看| 成人a视频在线观看| 国产精品爽爽爽爽爽爽在线观看| 成人黄色大片在线免费观看| 日韩精品视频三区| 97精品国产97久久久久久| 成人黄色片在线| 国内精品400部情侣激情| 亚洲小视频在线| 国产精品第七十二页| 97福利一区二区| 国产精品爽黄69天堂a| 久久视频在线观看免费| 亚洲一区亚洲二区| 欧洲亚洲在线视频| 午夜精品一区二区三区在线视频| 亚洲欧美中文日韩在线v日本| 一区二区三区www| 亚洲最大福利网| 欧美视频第一页| 国产精品视频在线播放| 性色av一区二区咪爱| 久久精品国产亚洲7777| 岛国视频午夜一区免费在线观看| 亚洲第五色综合网| 国产成人亚洲综合91精品| 欧美疯狂xxxx大交乱88av| 国产精品久久久久久久久| 一区二区三区视频免费在线观看| 欧美成人免费全部观看天天性色| 色婷婷成人综合| 久久成人av网站| 中文字幕亚洲一区二区三区五十路| 91精品久久久久久综合乱菊| 久久久国产精品x99av| 久久久久久综合网天天| 精品偷拍一区二区三区在线看| 亚洲国模精品一区| 中文精品99久久国产香蕉| 国产v综合ⅴ日韩v欧美大片| 久久久国产在线视频| 国产精品成人在线| 韩国视频理论视频久久| 亚洲国产精久久久久久| 日韩欧美在线网址| 国产精品久久中文| 欧美日韩国产麻豆| 国产欧美va欧美va香蕉在| 久久手机精品视频| 欧美性jizz18性欧美| 国产一区二区美女视频| 亚洲精品欧美日韩| 欧美超级乱淫片喷水| 欧美日韩亚洲视频一区| 亚洲精品久久久久久久久久久久久| 中文字幕亚洲欧美| 久久久久久久久久久人体| 亚洲人成电影在线| 日韩理论片久久| 国产精品久久久久久亚洲调教| 中文字幕精品国产| 亚洲一区二区三区乱码aⅴ蜜桃女| 不卡av电影院| 亚洲乱码国产乱码精品精天堂| 亚洲欧美成人一区二区在线电影| 成人一区二区电影| 欧美国产一区二区三区| 国产精品视频99| 中文字幕少妇一区二区三区| 中文字幕欧美视频在线| 97久久精品人搡人人玩| 18一19gay欧美视频网站| 中文字幕欧美视频在线| 国产美女久久精品| 97在线免费视频|