国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#反射實例學習及注意內容

2024-09-07 17:05:23
字體:
來源:轉載
供稿:網友
C#反射的入門學習首先要明白C#反射提供了封裝程序集、模塊和類型的對象等等。那么這樣可以使用反射動態(tài)創(chuàng)建類型的實例,將類型綁定到現(xiàn)有對象,或從現(xiàn)有對象獲取類型并調用其方法或訪問其字段和屬性。如果代碼中使用了屬性,可以利用反射對它們進行訪問。

MSDN描述:
反射通常具有以下用途:
使用 Assembly 定義和加載程序集,加載在程序集清單中列出的模塊,以及從此程序集中查找類型并創(chuàng)建該類型的實例。
使用 Module 發(fā)現(xiàn)以下信息:包含模塊的程序集以及模塊中的類等。您還可以獲取在模塊上定義的所有全局方法或其他特定的非全局方法。
使用 ConstructorInfo 發(fā)現(xiàn)以下信息:構造函數(shù)的名稱、參數(shù)、訪問修飾符(如 public 或 private)和實現(xiàn)詳細信息(如 abstract 或 virtual)等。使用 Type 的 GetConstructors 或 GetConstructor 方法來調用特定的構造函數(shù)。
使用 MethodInfo 發(fā)現(xiàn)以下信息:方法的名稱、返回類型、參數(shù)、訪問修飾符(如 public 或 private)和實現(xiàn)詳細信息(如 abstract 或 virtual)等。使用 Type 的 GetMethods 或 GetMethod 方法來調用特定的方法。
使用 FieldInfo 發(fā)現(xiàn)以下信息:字段的名稱、訪問修飾符(如 public 或 private)和實現(xiàn)詳細信息(如 static)等;并獲取或設置字段值。
使用 EventInfo 發(fā)現(xiàn)以下信息:事件的名稱、事件處理程序數(shù)據類型、自定義屬性、聲明類型和反射類型等;并添加或移除事件處理程序。
使用 PropertyInfo 發(fā)現(xiàn)以下信息:屬性的名稱、數(shù)據類型、聲明類型、反射類型和只讀或可寫狀態(tài)等;并獲取或設置屬性值。
使用 ParameterInfo 發(fā)現(xiàn)以下信息:參數(shù)的名稱、數(shù)據類型、參數(shù)是輸入參數(shù)還是輸出參數(shù),以及參數(shù)在方法簽名中的位置等。
當您在一個應用程序域的僅反射上下文中工作時,請使用 CustomAttributeData 來了解有關自定義屬性的信息。使用 CustomAttributeData,您不必創(chuàng)建屬性的實例就可以檢查它們。
System.Reflection.Emit 命名空間的類提供了一種特殊形式的反射,使您能夠在運行時生成類型。
反射也可用于創(chuàng)建稱作類型瀏覽器的應用程序,它使用戶能夠選擇類型,然后查看有關選定類型的信息。
反射還有其他一些用途。JScript 等語言編譯器使用反射來構造符號表。System.Runtime.Serialization 命名空間中的類使用反射來訪問數(shù)據并確定要持久保存的字段。System.Runtime.Remoting 命名空間中的類通過序列化來間接地使用反射。

一個最簡單的C#反射實例,首先編寫類庫如下:
代碼如下:
using System;
namespace ReflectionTest
{
public class WriteTest
{
//public method with parametors
public void WriteString(string s, int i)
{
Console.WriteLine("WriteString:" + s + i.ToString());
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 禹城市| 灵武市| 广西| 巍山| 福泉市| 南川市| 毕节市| 金平| 玛多县| 临夏县| 依安县| 响水县| 资源县| 岳阳县| 太原市| 红河县| 固原市| 色达县| 邳州市| 益阳市| 镇原县| 政和县| 汶川县| 务川| 博客| 濉溪县| 泗阳县| 靖西县| 琼结县| 思南县| 莱州市| 抚州市| 左权县| 桑日县| 连平县| 庆阳市| 襄城县| 日喀则市| 乌兰浩特市| 广南县| 汾西县|