Action
委派,無回傳值。(若沒回傳值則使用Action) 使用方法: 宣告Action<參數類型1,參數類型2....> 呼叫Action(參入1,參數2)
FUNC
委派,有回傳值。 使用方法: 宣告FUNC<參數類型1,參數類型2....,回傳值類型> 呼叫var value= FUNC(參數類型1,參數類型2....)
原始寫法
public delegate void DisplayMessage();
public class TestDelegate
{
public static void Main()
{
DisplayMessage showMethod = Display;
showMethod();
}
public static void Display()
{
Console.WriteLine("Hello World");
}
}
Action 寫法
public class TestDelegate
{
public static void Main()
{
Action showMethod = Display;
showMethod();
}
public static void DisplayToWindow()
{
Console.WriteLine("Hello World");
}
}
Actor 簡易寫法
public class TestDelegate
{
public static void Main()
{
Action showMethod = ( ) =>
{
Console.WriteLine("Hello World");
};
showMethod();
}
}
Activator
動態方式建立物件,可用來抽換DLL
// 載入組件
var assembly = Assembly.Load("Demo");
// 取得組件類別
var assemblyType = assembly.GetType("Demo.Email");
// 建立執行個體
var instance = Activator.CreateInstance(assemblyType);
Environment
提供有關目前環境和作業系統平台的資訊以及操作的方法。
託管
被 CLR 自動配置與管理的記憶體,被稱為 Managed 資源,GC會處理; 反之,不受 CLR 管理的便被稱為 Unmanaged 資源(ex: Stream、與資料庫的連結、COM物件…等),需要手動釋放。
垃圾
只有被稱為垃圾的物件才能被 GC 回收,如何判定是垃圾呢,例如離開了對應的大括號的區域變數、將變數指定為 null、重新指向其他物件(而原先指向的物件已無法被取得)、重新初始化…等,這時原先變數佔有的空間都會被 CLR 視為 garbage 而等待回收。