如何在静态类中使用Type.GetMethods?

时间:2018-02-23 18:38:06

标签: c#

我有一个"命令列表"我正在开发的控制台应用程序。其中之一是打印所有可供玩家使用的命令的方法。我已尝试在Type.GetMethods课程上调用CommandsList以便列出所有内容,但下面的returnString为空。使用断点后,我发现commands也是空的,即使CommandsList中存在公共方法。这是我第一次尝试使用Type.GetMethods,所以我确定我做错了什么。如果有人可以帮我解决这个问题,我将不胜感激。以下是我的代码:

using System;
using System.Reflection;
using System.Collections;
using System.Collections.Generic;

public static class CommandsList {
    //(Other commands)
    public static void Commands() {
        MethodInfo[] commands = typeof(CommandsList).GetMethods(BindingFlags.Public);
        string returnString = "";
        foreach(MethodInfo info in commands) {
            returnString += info.Name + " ";
        }
        Console.WriteLine(returnString);
    }
}

1 个答案:

答案 0 :(得分:4)

您需要告诉您想要静态方法的命令:

var commands = typeof(CommandsList).GetMethods(BindingFlags.Public | BindingFlags.Static);