【C#學習筆記】反射的簡單用法
常見的使用反射的場景:
程式在執行時動態地訪問類的成員,如獲得類的變數、方法。
例如:用反射給本類的變數賦值。
public class Student{
public string studentName = "小王";
public void Test()
{
Type type = this.GetType(); // 獲得本類的型別
PropertyInfo propertyInfo = type.GetProperty("studentName"); // 獲得本類的成員變數
propertyInfo.SetValue(this , "老王"); // 修改本類的成員變數
}
}
上面的程式碼,執行Test()方法後,能夠重新給本類的變數賦值。通常經過別的操作得到新的值,然後將新的值做為引數傳入該方法。
使用反射和泛型,可以使得介面類的設計通用型更強,但會降低程式碼可讀性。報錯時得Debug來一步步除錯來看執行時反射得到是資料型別。
其他反射使用場景:獲得類的方法並呼叫等。
學習:
相關推薦
【C#學習筆記】反射的簡單用法
常見的使用反射的場景: 程式在執行時動態地訪問類的成員,如獲得類的變數、方法。 例如:用反射給本類的變數賦值。 public class Student{ public string studentName = "小王"; public
【C++學習筆記】C++巨集的定義用法總結
本文轉載自:https://www.cnblogs.com/jjzzx/p/5122494.html 第一種用法——配合條件編譯:#define DEBUG 定義一個叫DEBUG的識別符號。它應該與#ifdef或#ifndef配合使用。舉例如下: #define DEBUG #
【C++ 學習筆記】 MFC CEdit
top 註意 hello lac int 生成 屬性對話框 關聯 額外 環境:VS2008 -關聯變量 方法一:在控件上右鍵-變量-CEdit類型變量-輸入變量名。 方法二:添加代碼 頭文件中定義變量CEdit m_edit_fileName;源文件中變量
【C#學習筆記】 IDisposable 接口
數據 在外 source int word 編寫 osi 圖標 不知道 托管資源指的是.NET可以自動進行回收的資源,主要是指托管堆上分配的內存資源。托管資源的回收工作是不需要人工幹預的,有.NET運行庫在合適調用垃圾回收器進行回收。 非托管資源指的是.
【C#學習筆記】播放wav文件
con sound ram pan layer oid col med clas using System; using System.Media; namespace ConsoleApplication { class Program
【C#學習筆記】Dictionary容器使用
main 容器 ons move eap app namespace ica gen using System; using System.Collections.Generic; namespace ConsoleApplication { cla
【C#學習筆記】寫文件
pan name iter create open static col main write using System; using System.IO; namespace ConsoleApplication { class Program
【C#學習筆記】網頁彈出提示框
app c# tar code script dfs 提示框 form pro using System; using System.Collections.Generic; using System.Linq; using System.Web; using
【C#學習筆記】獲得本機IP
tostring class main style dns system pad space ipad using System; using System.Net; namespace ConsoleApplication { class Prog
【C#學習筆記】函數調用
() void color space c# ram 學習 pro urn using System; namespace ConsoleApplication { class Program { static int Ad
【C#學習筆記】瀏覽目錄得到路徑
lin log ini art sys 目錄 dialog forms cati using System; using System.Collections.Generic; using System.ComponentModel; using System.D
【C#學習筆記】獲取當前應用程序所在路徑及環境變量
環境 nbsp for filename 字符 dom process ati 反斜杠 轉自:http://www.cnblogs.com/netlyf/archive/2011/06/22/2086718.html 一、獲取當前文件的路徑 string str1=Pr
【C#學習筆記】載入圖片並居中
mode collect angle mage event names args void fromfile using System; using System.Collections.Generic; using System.ComponentModel;
【C#學習筆記】保存文件
ica cnblogs void click lec system esp open () using System; using System.Collections.Generic; using System.ComponentModel; using Sys
【C#學習筆記】播放wma/mp3文件
con cati ise returns c# 停止 end ext resume using System; using System.Runtime.InteropServices; namespace ConsoleApplication {
【C#學習筆記】讀SQL Server2008
data ext lose tar inf lec area space args using System; using System.Data.SqlClient; namespace ConsoleApplication { class Pro
【C#學習筆記】讀access2007
ole cat sys source class void sel mes nec using System; using System.Data.OleDb; namespace ConsoleApplication { class Program
【C#學習筆記】類構造函數使用
print program ica name eap code ogr cnblogs xiaomi using System; namespace ConsoleApplication { class stu { priv
【C#學習筆記】using 三種使用方式
ride over 啟動 類型 thread catch key log 調用 1.using指令。using + 命名空間名字,這樣可以在程序中直接用命令空間中的類型,而不必指定類型的詳細命名空間,類似於Java的import,這個功能也是最常用的,幾乎每個cs的程序都會
【c# 學習筆記】類實例化
() 包括 -- AD class 得到 rgs C# col 類中可以定義的成員,包括字段、屬性、構造函數、實例方法和析構函數等。 要訪問這些實例成員,必須通過類的實例對象來完成。而要得到一個類的實例對象,就必須先聲明一個該類類型的變量,然後使用new運算符後