c# - 如何命名 Get() 方法的变体?

标签 c# naming-conventions

我正在为类似于存储库的抽象开发 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/

相关文章:

c# - 在 WPF 中使用 MVVM 模式在运行时加载 XAML

c# - AJAX 发布数据到达 ASP.NET Core 2.1 Controller 时为空

字典或列表操作的 Python 命名约定

c# - 是否建议为所有 C# 枚举添加后缀 "Enum"以避免命名冲突?

c# - 如何在 C# 中更新字典中键的值?

c# - CancellationTokenSource.Cancel 抛出 ObjectDisposedException

c# - 如何使泛型类成为另一个实例类中的属性?

Java-接口(interface)方法命名约定

java - 获取集合大小的命名约定

javascript - 异步 getter 的命名约定