111,073
社区成员




Type t = this.GetType();
MethodInfo mt = t.GetMethod($"Step_{stepid}");//这是反射执行里面的方法
bool iresult = (bool)mt.Invoke(this, new object[] { });//这一句不明白,请问这个结果判断是什么意思
if (!iresult)//
{
isError = true;
break;
}
invoke 就是通用同步调用。但是应为通用了,所以他不区分类型,他统一转换成object
所以前面有个强制转换 (bool)
总结,这个没有结果判定。这是业务逻辑约定,等同一调用一个 bool XXX()方法,所以没有什么意思不意思。这个方法你写成普通的也是
bool xx=xxx(); if(xx)
this.gettype 表示拿到当前对象的类型. 包含里面的方法/属性/字段等等...
getmethod 表示获取方法.
Invoke表示执行. 参数1就是固定的 参数2表示方法的参数. 结果是object 转换成bool 并判断.
比如 原始代码大概就是这样的
public class abc
{
}
public bool Step_1(int id)
{
return true;
}
当你执行了 你上面的代码 就会调用Step_1 并返回true