首頁 > 後端開發 > C++ > 如何在 C# 中使用反射呼叫靜態方法?

如何在 C# 中使用反射呼叫靜態方法?

Mary-Kate Olsen
發布: 2024-12-28 18:45:13
原創
879 人瀏覽過

How to Invoke Static Methods Using Reflection in C#?

透過反射呼叫靜態方法

問題:

您在命名空間mySolution.Macros,每個包含靜態方法例如:

public static class Indent
{
    public static void Run()
    {
        // implementation
    }
}
登入後複製

您的目標是使用反射呼叫這些方法,即使它們是靜態的。

解:

呼叫靜態具有反射的方法,同時保留其靜態性質,請採用以下方法:

foreach (var tempClass in macroClasses)
{
    // Note that the first argument is ignored for static methods
    tempClass.GetMethod("Run").Invoke(null, null);
}
登入後複製

如文件中所述MethodInfo.Invoke,第一個參數對於靜態方法來說是多餘的,因此您可以安全地傳遞null。

綁定標誌:

需要注意的是,您可能需要在調用方法時指定綁定標誌,如評論中所建議:

tempClass.GetMethod("Run", BindingFlags.Public | BindingFlags.Static).Invoke(null, null);
登入後複製

這確保該方法是公共的並且static,這是正確調用所必需的。

以上是如何在 C# 中使用反射呼叫靜態方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板