我正在为类似于存储库的抽象开发 API。我有两种方法:
// Throws an exception if object cannot be found
MyObj Get(MyIdType id);
// Returns false if object cannot be found; no exception
bool TryGet(out MyObj obj);
需要第三种变体:如果找不到对象则返回 null,并且不抛出异常。
// Returns null if object cannot be found; no exception
MyObj ?????(MyIdType id);
我不知道该给它起什么名字。 GetOrDefault 已被排除在外。 GetIfNotNull 已被建议,但似乎也不清楚。 GetOrNull 是迄今为止最有前途的。
有没有人有任何其他建议,或者知道我可以遵循其约定的任何公共(public) API?
最佳答案
我会选择不使用在两种情况下表现不同的 Get 方法。为什么不让 Get 在所有情况下都返回 null。为什么要抛出异常?
如果需要,我会选择让用户代码在返回空值时抛出异常。
参见 this question有关何时抛出异常的进一步指导。
关于c# - 如何命名 Get() 方法的变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071083/