【发布时间】:2011-10-20 18:17:18
【问题描述】:
我尝试了一个小程序...我想运行一个程序并查看 c# 类中的所有方法名称... 这是代码
class Program
{
public int adf()
{
return 0;
}
static void Main(string[] args)
{
foreach (MethodInfo mInfo in typeof(Program).GetMethods(BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static))
{
Console.WriteLine(mInfo.Name);
}
Console.ReadKey();
}
private void bdf()
{
Console.WriteLine("Dg");
}
}
它工作正常,结果我得到了这个
adf
main
bdf
现在,我只想将一个参数传递给 GetMethods 函数并获得结果...我认为使用 'binary or(|)' 传递 5 个参数不是一个好方法...在 BindingFlags Enum 是 19 个字段,如果我想传递 18 个参数会是什么 xD 我怎样才能只传递一个值?
这里是枚举
public enum BindingFlags
{
Default = 0,
IgnoreCase = 1,
DeclaredOnly = 2,
Instance = 4,
Static = 8,
Public = 16,
NonPublic = 32,
FlattenHierarchy = 64,
InvokeMethod = 256,
CreateInstance = 512,
GetField = 1024,
SetField = 2048,
GetProperty = 4096,
SetProperty = 8192,
PutDispProperty = 16384,
PutRefDispProperty = 32768,
ExactBinding = 65536,
SuppressChangeType = 131072,
OptionalParamBinding = 262144,
IgnoreReturn = 16777216,
}
}
我认为这是一个非常有趣和有用的问题......
【问题讨论】:
-
从技术上讲,你没有问问题...
-
如何只传递一个值?
-
您可以编辑问题并添加到其中。比放在评论中更好。
-
没有能力。您希望仅使用 1 个值返回 1 个以上的值。或者只是写一个静态方法,不要一遍又一遍地重复。
-
我已经回答了一个方法(很容易成为通用函数)来获取一个枚举的所有标志的值,如果更容易,你可以从中减去值。