gpt4 book ai didi

c# - 函数命名 : ActionIfCondition()

转载 作者:行者123 更新时间:2023-11-30 19:51:29 24 4
gpt4 key购买 nike

我经常需要使用一个函数来执行和 Action X 是条件 Y 设置。命名这样一个函数的最佳方式是什么?

我不想重复 if 语句,因为它们可能很复杂。

例如,如果我想在设置了属性的情况下修剪字符串,函数可以命名为:

  • void TrimIfOptionSet(string) -- 太笨重,尤其是在条件复杂的情况下
  • bool TryTrim(string) -- 没有提到外部条件,我希望它只考虑参数。
  • void ConditionalTrim(string) -- 有点冗长

在 C#/.Net 或任何类似语言中是否有针对这种情况的约定?

最佳答案

尝试这样的事情:

if(IsComplexCondition(complexData))
{
DoThing(otherData);
}

您通常不希望将条件与操作耦合,因为您正在使单个函数在该点捕获太多语义信息。这是“做不止一件事”。相反,如果您有复杂的条件,请在函数中捕获该条件以将其封装。

如果您指的是更常见的情况,例如函数顶部的参数验证,请考虑类似 fluent parameter validation 的内容.如果您不做参数验证之类的事情,那么我可能会质疑为什么它位于每个函数的顶部而不是在公共(public)位置捕获或在系统边界执行一次。

我不认为命名将军有一个很好的答案 ActionIfSomething()案例仅仅是因为它通常不是解决问题的好方法。我可能只是说调用函数 Action()并记录下来,也许在 <remarks> 中, 仅在 Something 时执行操作是真的。如果Action属于函数中的条件,那么它只有在该条件的上下文中才有意义,因此在函数名称中重新指定它是多余的。

关于c# - 函数命名 : ActionIfCondition(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1065900/

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