(删除了不必要的混乱)
编辑 1
似乎我的问题不是很清楚...... doh...... :)
所以 ....
如何写这个:
instance.Method(e => OtherClass.Fill(e, instance2.A, instance3.B));
像这样:
instance.Method(new Action<IDataReader>(OtherClass.Fill));
当“方法”签名为:
void Method(Action<IDataReader> reader)
“填充”签名是:
void Fill(IDataReader reader, string a, string b);
更新
我想出了一种替代实现,但它仍然会导致调试器介入该 Fill 调用。不再有 lambda 表示法,但它似乎仍然介入,啊……
instance.Method(delegate(IDataReader e) { OtherClass.Fill(e, instance2.A, instance3.B); });
解决方案
似乎我只需要一个从委托调用的附加方法,然后该方法将调用传递给下一个方法(Fill),并带有另外两个参数:
instance.Method(this.Foo);
[DebuggerStepThrough()]
private void Foo(IDataReader reader)
{
OtherClass.Fill(reader, this.instance2.A, this.instance3.B)
}