C# 如何做';输出';在函数中<;T>;在c中#
我正在使用一个库来度量运行代码的指标。 图书馆的用途是这样的C# 如何做';输出';在函数中<;T>;在c中#,c#,C#,我正在使用一个库来度量运行代码的指标。 图书馆的用途是这样的 _Library.Wrap("AnyStringForMetrics", Func<T>); 但是现在,如果我试图包装我的代码 public User GetOrCreate(long id, out bool newlyCreated) { // some random checks return _Library.Wrap( "UserGetOrCreat
_Library.Wrap("AnyStringForMetrics", Func<T>);
但是现在,如果我试图包装我的代码
public User GetOrCreate(long id, out bool newlyCreated) {
// some random checks
return _Library.Wrap(
"UserGetOrCreate", () => UserDatabase.GetOrCreate(id, out newlyCreated));
}
在lambda表达式中使用“out”会得到一个异常。我应该如何解决这个问题
如果可能,请写出一个具体的代码示例。。。谢谢。请改用a作为返回类型,从而避免使用out
参数
public(用户用户,bool newlyCreated)GetOrCreate(长id){
变量用户=。。。。;
布尔创建=。。。。;
返回(用户,已创建);
}
并将其映射到
Func
使用a作为返回类型public(User-User,bool-newlyCreated)GetOrCreate(long-id){var-User=…;bool-created=…;return(User,created);}
并将其映射到Func
@OlivierJacot-Descombes您能给出答案吗?我想这可能行得通。我可以接受。nvm看起来他们认为这个问题是重复的,所以无法回答。我试过你的方法,效果很好。
public User GetOrCreate(long id, out bool newlyCreated) {
// some random checks
return _Library.Wrap(
"UserGetOrCreate", () => UserDatabase.GetOrCreate(id, out newlyCreated));
}