C#__使用Type類反射數據的基本用法

?// 簡單介紹

// 元數據(metadata):與程序及其類型有關的數據。
// 反射:一個運行的程序查看本身元數據或其他程序集中的元數據的行為
// Assembly類:允許訪問給定程序集的元數據,包含了可以加載和執行程序集

// 定義一個用于訪問的類MyClass

    class MyClass{private int a, b;public int c;public string d;public string Name1 { get; set; }public string Name2 { get; set; }public void Test1() { }public void Test2() { }}

// 主函數調用

    class Program{static void Main(string[] args){// 使用Type類可以反射數據// 定義// 方案一Type t1 = typeof(MyClass);// 方案二MyClass myclass = new MyClass();Type t2 = myclass.GetType();// 獲取類名Console.WriteLine(t1.Name); // MyClassConsole.WriteLine(t2.Name); // MyClass// 獲取空間名Console.WriteLine(t1.Namespace); // TypeAndAssemblyConsole.WriteLine(t2.Namespace); // TypeAndAssembly// 獲取程序集的基本信息 (空間名,版本,文化,公共鑰匙符號)Console.WriteLine(t1.Assembly); // TypeAndAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullConsole.WriteLine(t2.Assembly); // TypeAndAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null// 提取MyClass的字段的屬性FieldInfo[] fis = t1.GetFields();foreach (FieldInfo fi in fis){Console.WriteLine(fi.Name); //c//d}// 提取MyClass的屬性的 get 訪問器。PropertyInfo[] pis = t2.GetProperties();foreach (PropertyInfo pi in pis){Console.WriteLine(pi); // System.String Name1// System.String Name2}// 提取Myclass的類函數(包含繼承自父類的)MethodInfo[] mis = t2.GetMethods();foreach (MethodInfo mi in mis){Console.WriteLine(mi);/*System.String get_Name1()Void set_Name1(System.String)System.String get_Name2()Void set_Name2(System.String)Void Test1()Void Test2()Boolean Equals(System.Object)Int32 GetHashCode()System.Type GetType()System.String ToString()*/}}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41614.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41614.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41614.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Maven框架SpringBootWeb簡單入門

一、Maven ★ Maven:是Apache旗下的一個開源項目,是一款用于管理和構建java項目的工具。 官網:https://maven.apache.org/ ★ Maven的作用: 1. 依賴管理:方便快捷的管理項目依賴的資源(jar包),避免版本沖突問題。 2. 統一項目結構:提供標準、統一的項目結構。 …

LightDB 23.3 plorasql 函數支持inout參數輸出

開篇立意 oracle PLSQL函數中返回值有兩種情況: (1)使用return返回值; (2)使用out修飾的參數(oracle不支持inout) SQL> create function yu(id inout int) return int asbeginn…

【C# 基礎精講】文件讀取和寫入

文件讀取和寫入是計算機程序中常見的操作,用于從文件中讀取數據或將數據寫入文件。在C#中,使用System.IO命名空間中的類來進行文件讀寫操作。本文將詳細介紹如何在C#中進行文件讀取和寫入,包括讀取文本文件、寫入文本文件、讀取二進制文件和寫…

選擇大型語言模型自定義技術

推薦:使用 NSDT場景編輯器 助你快速搭建可二次編輯器的3D應用場景 企業需要自定義模型來根據其特定用例和領域知識定制語言處理功能。自定義LLM使企業能夠在特定的行業或組織環境中更高效,更準確地生成和理解文本。 自定義模型使企業能夠創建符合其品牌…

PAT 1013 Battle Over Cities

個人學習記錄,代碼難免不盡人意。 It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair a…

計算機機房的管理

1 電源問題 不穩定的電源對電腦的使用壽命是一個極大的威脅,特別是對于機房來說危害 性更大。為此,學校要添置必要的穩壓器,設置其正常供電的電壓為 220 伏、電流 為 l6 安對電腦室供電。如有電壓發生偏差,要及時檢查供電情況&…

BDA初級分析——認識SQL,認識基礎語法

一、認識SQL SQL作為實用技能,熱度高、應用廣泛 在對數據分析人員的調查中SQL長期作為熱度排名第-一的編程語言超過Python和R SQL:易學易用,高效強大的語言 SQL:Structured Query Language 結構化查詢語言 SQL:易學…

python threading.Event()用法

紅綠燈例子 Event的用法 import threading,timeeventthreading.Event()def lighter():timesec0event.set()while True:if 5<timesec<10:event.clear()print("紅燈亮")elif timesec>10:event.set()timesec0else:print("綠燈亮")time.sleep(1)tim…

BSN“五、十、百”工程實施半年成果豐碩,助力數字化轉型和高質量發展

為推動“云網鏈”融合的新基建賦能數字經濟高質量發展&#xff0c;將區塊鏈服務網絡&#xff08;BSN&#xff09;打造成為中國數字經濟和社會治理的核心區塊鏈公共服務平臺&#xff0c;2023年2月&#xff0c;在“第三屆區塊鏈服務網絡&#xff08;BSN&#xff09;全球合作伙伴大…

力扣75——二分查找

總結leetcode75中的二分查找算法題解題思路。 上一篇&#xff1a;力扣75——堆/優先隊列 力扣75——二分查找 1 猜數字大小2 咒語和藥水的成功對數3 尋找峰值4 愛吃香蕉的珂珂1-4解題總結 1 猜數字大小 題目&#xff1a; 猜數字游戲的規則如下&#xff1a;每輪游戲&#xff0…

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 目錄 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 1.程…

java 向上取整 java對小數取整

取整方法 Math.floor(double a) 向下取整 Math.ceil(double a) 向上取整 Math.round(double a) 四舍五入 0.5向下取整 Math.rint(double a) 就近取整 1.6接近2&#xff0c;所以就取2 1.4接近1&#xff0c;所以就取1 1.5跟1和2都很接近&#xff0c;這時候就取偶數 (int) 類型強轉…

MongoDB:數據庫初步應用

一.連接MongoDB 1.MongoDBCompass連接數據庫 連接路徑:mongodb://用戶名:密碼localhost:27017/ 2.創建數據庫(集合) MongoDB中數據庫被稱為集合. MongoDBCompass連接后,點擊紅色框加號創建集合,點擊藍色框加號創建文檔(數據表) 文檔中的數據結構(相當于表中的列)設計不用管…

騰訊云國際輕量應用服務器使用流程是什么呢?

騰訊云國際輕量應用服務器怎么使用呢&#xff1f;下面一起來了解一下&#xff1a; 1. 熟悉輕量應用服務器基礎知識 ①什么是輕量應用服務器 TencentCloud Lighthouse&#xff1f; ②輕量應用服務器與云服務器 CVM 的區別是什么&#xff1f; ③為什么選擇輕量應用服務器&#xf…

一個DW的計算

一個DW的計算 1- 題目: 已知一個DW1.1 要求: 從DW中取出指定的位的值1.1.1 分析1.1.2 實現1.1.3 簡化實現1.1.4 驗證 2- 題目: 已知一個DW2.1 要求: 從DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 實現 1- 題目: 已知一個DW 有圖中所示一行信息&#xff0c;表示一個DW(…

常見的Web安全漏洞有哪些,Web安全漏洞常用測試方法介紹

Web安全漏洞是指在Web應用程序中存在的可能被攻擊者利用的漏洞&#xff0c;正確認識和了解這些漏洞對于Web應用程序的開發和測試至關重要。 一、常見的Web安全漏洞類型&#xff1a; 1、跨站腳本攻擊(Cross-Site Scripting&#xff0c;XSS)&#xff1a;攻擊者通過向Web頁面注入…

神經網絡基礎-神經網絡補充概念-41-梯度的數值逼近

概念 梯度的數值逼近是一種用于驗證梯度計算正確性的方法&#xff0c;它通過近似計算梯度來與解析計算的梯度進行比較。雖然數值逼近在實際訓練中不常用&#xff0c;但它可以用來檢查手動或自動求導的實現是否正確。 代碼實現 import numpy as np# 定義函數 f(x) x^2 def f…

養生的年輕人,自己給自己“治病”

【潮汐商業評論/原創】 “最近嘴周總長痘&#xff0c;應該是上火了&#xff0c;我這就下單點金銀花露喝。”對于長痘這件事&#xff0c;Anna的第一反應就是“內調”。 “針對性護膚和涂藥這些方法治標不治本&#xff0c;就算用完痘痘不泛紅且癟了&#xff0c;身體里的問題沒解…

上傳文件報413Request EntityToo Large錯誤解決辦法

產生這種原因是因為服務器限制了上傳大小 1、nginx服務器的解決辦法 修改nginx.conf的值就可以解決了 將以下代碼粘貼到nginx.conf內 client_max_body_size 20M 可以選擇在http{ }中設置&#xff1a;client_max_body_size 20m; 也可以選擇在server{ }中設置&#xff1a;cli…

金蝶軟件實現Excel數據復制分錄信息粘貼到單據體分錄行中

>>>適合KIS云專業版V16.0|KIS云旗艦版V7.0|K/3 WISE 14.0等版本<<< 實現Excel數據復制分錄信息粘貼到金蝶單據體分錄中,在采購訂單|采購入庫單|銷售訂單|銷售出庫單等類型單據中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地復制到金蝶單據表體…