透過反射動態存取和呼叫靜態 C# 方法
假設您有一個儲存為字串的類別名稱(例如“MyClass”)並且需要呼叫其靜態方法之一。 反射提供了實現這種動態行為的機制。本指南示範如何使用反射從字串名稱中檢索類別引用,然後呼叫靜態方法。
使用 Type.GetType 進行類別檢索
Type.GetType
方法是動態存取類別的關鍵。 它將完全限定的類別名稱作為字串並傳回表示該類別的 Type
物件:
<code class="language-csharp">Type classType = Type.GetType("MyClass"); </code>
使用反射的方法呼叫
一旦有了 Type
對象,您就可以使用 GetMethod
來取得表示您希望呼叫的靜態方法的 MethodInfo
物件:
<code class="language-csharp">MethodInfo methodInfo = classType.GetMethod("MyStaticMethod", BindingFlags.Static | BindingFlags.Public);</code>
這將檢索名為「MyStaticMethod」的方法,確保它是公用靜態方法。 BindingFlags
指定搜尋條件。
最後,使用 Invoke
呼叫此方法:
<code class="language-csharp">methodInfo.Invoke(null, null); // null for static method, null for no parameters</code>
對於帶有參數的方法,將物件陣列作為第二個參數傳遞給Invoke
。
重要注意事項:
try-catch
區塊中以處理潛在的異常(例如,TypeLoadException
、MethodNotFoundException
)。 BindingFlags
。 透過採用這些技術,您可以釋放 C# 中動態方法呼叫的強大功能,從而實現靈活且適應性強的應用程式。
以上是如何在 C# 中使用反射來呼叫名稱為字串的類別的靜態方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!