成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#反射命名空間淺析

開發 后端
C#反射命名空間的常用類是什么呢?我們在了解C#反射之后,那么在掌握C#反射命名空間的時候需要注意什么呢?那么本文就向你介紹這些內容。

學習C#反射命名空間之前我們來看看C#反射的概念,反射是一個運行庫類型發現的過程。 通過反射可以得到一個給定程序集所包含的所有類型的列表,這個列表包括給定類型中定義的方法、字段、屬性和事件。也可以動態的發現一組給定類支持的借口、方法的參數和其他相關信息如基類、命名空間、數據清單等。

C#反射命名空間詳細介紹:

1.System.Reflection命名空間內的各類型

(1) Assembly通過它可以加載、了解和操縱一個程序集

(2) AssemblyName 通過它可以找到大量隱藏在程序集的身份中的信息,如版本信息、區域信息等

(3) EventInfo  事件的信息

(4) FieldInfo  字段的信息

(5) MethodInfo  方法的信息

(6) ParameterInfo  參數的信息

(7) PropertyInfo  屬性的信息

(8) MemberInfo  是抽象基類,為  EventInfo、FieldInfo 、MethodInfo、PropertyInfo等類型定義了公共的行為。

(9) Module 用來訪問帶有多文件程序集的給定模塊  
 
2.System.Type類

System.Type支持的成員可以分為這樣幾類

(1) Is***   用來檢查一個類型的元數據,如IsAbstract、IsClass、IsValueType等等

(2) Get*** 用來從類型得到指定項目,如GetEvent()得到類型的一個指定的事件(EventInfo)。 另外,這些方法都有一個單數版本和一個復數版本。如GetEvent()對應有一個復數版   本GetEvents(), 該方法返回一個相關的EventInfo數組

(3) FindMembers()   根據查詢條件返回一個MemberInfo類型的數組

(4)GetType()  該靜態方法根據一個字符串名稱返回一個Type實例

(5)InvokeMember()  對給定項目進行晚期綁定

3.得到一個Type類型實例的三種方法

因為Type是一個抽象類,所以不能直接使用new關鍵字創建一個Type對象

(1)使用System.Object.GetType()

  1. Person pe=new Person();    
  2. //---------定義pe為person類的一個對象   
  3. Type t=pe.GetType();  

(2)使用System.Type.GetType()靜態方法,參數為類型的完全限定名

  1. Type t=Type.GetType("Entity.Person"); 

該方法被重載,允許指定兩個布爾類型的參數,一個用來控制當前類型不能找到時是否拋出異常,

另一個用來指示是否區分字符串大小寫 

  1. Type t=Type.GetType("Entity.Person",false,true); 

注意到傳入的字符串并沒有包含類型所在的程序集信息,此時該類型便被認為是定義在當前執行的程序集中的。

要得到一個外部私有程序集的類型元數據時,字符串參數必須使用類型完全限定名加上類型所在程序集的友好名字

  1. Type t=Type.GetType("Entity.Person","Entity");  
  2. //------"Entity"即為類型所在程序集的友好名字  

嵌套類型:傳入的字符串可以指定一個+標記來表示一個嵌套類型,如希望得到一個嵌套在person類中的枚舉類型City的類型信息,則可以這樣

  1. Type t=Type.GetType("Entity.person+City"); 

(3)使用typeof運算符

  1. Type  t=typeof(person); 

三種方法的比較:

使用***種方法必須先建立一個實例,而后兩種方法不必先建立實例。但使用typeof運算符仍然需要知道類型的編譯時信息,而使用System.Type.GetType()靜態方法不需要知道類型的編譯時信息,所以是***方法。

C#反射命名空間的基本內容和注意事項就向你介紹到這里,希望對你了解和學習C#反射命名空間有所幫助。

【編輯推薦】

  1. C#靜態方法使用經驗淺談
  2. C#靜態方法概念解析實例
  3. C#靜態方法與非靜態方法的比較
  4. C#靜態方法應用實例詳解
  5. C#反射概念以及實例詳解
責任編輯:仲衡 來源: 博客園
相關推薦

2009-07-31 18:18:33

Camel命名法C#命名規范

2009-08-27 15:34:38

C#命名空間

2009-08-12 10:46:54

C#命名空間

2009-08-21 13:34:32

C# System.I

2009-09-11 09:22:14

System.Linq

2009-08-24 10:07:57

C#泛型處理

2009-08-24 16:19:42

C# 泛型方法

2009-09-01 17:17:48

C#命名空間和程序集

2021-03-15 08:18:23

C#反射模塊

2009-08-07 17:25:37

C# SortedLi

2009-08-14 17:45:52

C# ArrayLis

2009-08-17 18:34:50

C# ChangeCo

2009-08-25 17:59:49

C#入門

2009-08-12 15:20:21

C#事件處理

2009-08-17 13:34:02

C#異步操作

2009-08-26 13:07:07

C#交錯數組

2009-08-27 11:43:31

C#語法

2009-08-18 09:24:52

C# Anonymou

2009-08-14 15:23:10

C#使用ErrorPr

2009-08-20 14:45:13

C# Switch語句
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 综合伊人| 国产精品18hdxxxⅹ在线 | 一区二区三区播放 | 伊人久久综合 | 国产在线观看一区二区三区 | 成人性视频免费网站 | 色视频在线播放 | 亚洲电影成人 | 成人乱人乱一区二区三区软件 | 久在线精品视频 | 日韩无| 国产午夜精品一区二区三区嫩草 | 欧美性久久 | 久久久久久久久久久蜜桃 | 欧美在线a | 99热精品国产 | 日本欧美黄色片 | 国产精品久久久久无码av | 久在线 | 一区二区三区亚洲 | 国产 日韩 欧美 在线 | 国产视频一区二区在线观看 | 亚洲一区二区在线视频 | 国产精品久久久久久久久动漫 | 日本一区二区高清视频 | 天天爽综合网 | 日韩一区二区三区四区五区六区 | 日本成人三级电影 | 国产精品久久久久久吹潮 | 亚洲视频二区 | 国产在线精品一区二区三区 | 国产激情一区二区三区 | 亚洲中午字幕 | 午夜私人影院在线观看 | 伊人免费在线观看 | 色网在线观看 | 欧美精品一区三区 | 日本成人一区二区 | 国产欧美日韩精品一区二区三区 | 国产精品久久亚洲7777 | 欧美一a一片一级一片 |