我正在编写一个抽象文件解析器(C#),它由两个具体解析器扩展。两者都需要执行几个检查。目前,抽象解析器中有一个验证方法,该方法使用反射调用所有名称以“test”开头的方法。这样,添加检查就像添加名称以“test”开头的方法一样容易。
最近,我收到了一些关于使用反射和更好地使用动态分派的评论。我的问题是,为什么不使用反射,以及您将如何实现此操作?此外,我应该如何使用动态分派来解决此问题?
最近,我收到了一些关于使用反射和更好地使用动态分派的评论。我的问题是,为什么不使用反射,以及您将如何实现此操作?此外,我应该如何使用动态分派来解决此问题?
public bool Validate()
{
bool combinedResult = true;
Type t = this.GetType();
MethodInfo[] mInfos = t.GetMethods();
foreach (MethodInfo m in mInfos)
{
if (m.Name.StartsWith("Check") && m.IsPublic)
{
combinedResult &= (bool)m.Invoke(this, null);
}
}
return combinedResult;
}