有人能告诉我是否有办法查看某个动作是否包含任何代码?
Action x = new Action(()=>
{
});
应该返回false,而
Action x = new Action(()=>
{
var x = "i am a string"
});
应该返回true。
也许使用反射?
答案 0 :(得分:7)
也许这会有所帮助:
Action x = new Action(() =>
{
var xx = "i am a string";
});
Action x1 = new Action(() =>
{
});
MethodBody mb = x.Method.GetMethodBody();
MethodBody mb1 = x1.Method.GetMethodBody();
byte[] b = mb.GetILAsByteArray();
byte[] b1 = mb1.GetILAsByteArray();
b1(空方法体)只有2个字节,值0和42表示 nop 和返回,我认为。