gpt4 book ai didi

c# - 具有最佳性能的 Foo/TryFoo 方法对的设计?

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:10 25 4
gpt4 key购买 nike

<分区>

我有一个常见的场景需要写一对方法:

  • 获取结果并在失败时抛出异常,以及
  • Try - 尝试将结果作为 out 参数获取结果的同一方法的变体,并返回表示成功的 bool状态。

这里有两个例子来说明我正在考虑的两种方法。这些方法中的哪一个提供了最好的性能?另外,一种方法可能比另一种更容易维护吗?我也乐于接受关于其他方式来实现这对方法的建议。

方法一:以Foo()为主

public string GetAnswer(string question) {

string answer = null;

if(!this.TryGetAnswer(question, out answer)) {
throw new AnswerNotFoundException();
}

return answer;
}

public bool TryGetAnswer(string question, out string answer) {

answer = null;

//business logic

return answer != null;
}

方法二:TryFoo() master

public string GetAnswer(string question) {

//business logic

if(!answerFound) {
throw new AnswerNotFoundException();
}
return answer;
}

public bool TryGetAnswer(string question, out string answer) {

try {
answer = this.GetAnswer(question);
return true;
} catch (AnswerNotFoundException e) {
answer = null;
return false;
}
}

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