可能成功/失败的操作——返回类型和命名约定

RJB*_*RJB 5 c# naming-conventions return-value

对于由于其业务逻辑而可能成功完成或失败的方法,哪种返回类型合适?根据该返回类型,适当的命名约定是什么?

我的直觉是 bool 最适合简单的通过/失败。我研究并发现了推断特征的方法的约定- 即 IsValid、HasFoo、ContainsBar 等。但这也是像 BuildHouse() 或 FlyKite() 这样的操作的正确命名,以清楚地指示操作是否成功?

我尝试了几种方法,但每次我都觉得它看起来很奇怪,必须有更好的做法......

bool IsHouseBuilt()
bool TryBuildHouse()
void BuildHouse(out bool success)
PassFailEnum BuildHouse() //seems a little excessive

bool IsKiteFlying()
bool TryFlyKite()
void FlyKite(out bool success)
PassFailEnum FlyKite() 
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 4

.NET 中所有尝试将某些内容解析为其他内容(例如int.TryParse)的内置方法都会被调用TryParse并返回一个bool和一个out参数。

所以也许:

public static bool TryBuildHouse(T input, out House house)
Run Code Online (Sandbox Code Playgroud)