gpt4 book ai didi

c# - 如何从 Action() 返回值?

转载 作者:IT王子 更新时间:2023-10-29 03:41:28 32 4
gpt4 key购买 nike

关于这个问题的答案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)考虑了返回值:

  • Converter<TInput, TOutput> ( MSDN )
  • Predicate<TInput> - 总是返回 bool ( MSDN )

方法:

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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com