关于这个问题的答案Passing DataContext into Action() , 如何从 action(db) 返回一个值?
SimpleUsing.DoUsing(db => {
// do whatever with db
});
应该更像是:
MyType myType = SimpleUsing.DoUsing<MyType>(db => {
// do whatever with db. query buit using db returns MyType.
});
最佳答案
您可以使用 Func<T, TResult>
通用委托(delegate)。 (参见 MSDN )
Func<MyType, ReturnType> func = (db) => { return new MyType(); }
还有一些有用的通用委托(delegate)考虑了返回值:
方法:
public MyType SimpleUsing.DoUsing<MyType>(Func<TInput, MyType> myTypeFactory)
通用委托(delegate):
Func<InputArgumentType, MyType> createInstance = db => return new MyType();
执行:
MyType myTypeInstance = SimpleUsing.DoUsing(
createInstance(new InputArgumentType()));
或明确地:
MyType myTypeInstance = SimpleUsing.DoUsing(db => return new MyType());
关于c# - 如何从 Action() 返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8099631/