主目錄:https://www.v2know.com/MainPage/Category/CSharp
C#進階程式設計——Reflection反射
反射就像在主程式裡面,安裝了一個聲納探測器,
在生命周期一開始的時候,就會調用探測器,你的方法執行依賴于聲納反射回來的聲波,
這樣的做的好處是,當你想更新程式的時候,隻需要加dll就行了,
不需要重新編譯。
這樣,就成了插件式的程式設計。
執行個體:
using System;
[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute : System.Attribute
{
public readonly string Url;
public string Topic // Topic 是一個命名(named)參數
{
get
{
return topic;
}
set
{
topic = value;
}
}
public HelpAttribute(string url) // url 是一個定位(positional)參數
{
this.Url = url;
}
private string topic;
}
[HelpAttribute("Information on the class MyClass")]
class MyClass
{
}
namespace AttributeAppl
{
class Program
{
static void Main(string[] args)
{
System.Reflection.MemberInfo info = typeof(MyClass);
object[] attributes = info.GetCustomAttributes(true);
for (int i = 0; i < attributes.Length; i++)
{
System.Console.WriteLine(attributes[i]);
}
Console.ReadKey();
}
}
}
輸出:
HelpAttribute
參考文檔:
[1] C# 反射(Reflection) | 菜鳥教程
[2] C# 入門(19) 反射(reflection)和特性(attribute)