我写简单的库,返回名称列表.
但是,如果我找不到任何东西,我应该返回什么?
return new List<String>();
Run Code Online (Sandbox Code Playgroud)
要么
return null;
Run Code Online (Sandbox Code Playgroud)
例:
var resultColl=FindNames(...);
Run Code Online (Sandbox Code Playgroud)
此代码可以从其他组件使用,我不想破坏它.如果我返回null-我认为这是检查它的正确方法.但是,可能我应该返回空列表?
谢谢.
我会回来Enumerable.Empty<string>(),或者如果你的方法应该返回一个List,那就行了return new List<string>().如果你有很多需要返回空列表的情况,你可以创建一个静态列表,每次返回一次,这将阻止每次都必须创建新的空列表,如下所述@YuvalItzchakov.
一个空的集合比null它更好,在我看来会导致更清晰的代码.
小智 5
返回空列表对于您的函数用户来说更方便:
foreach (string name in FindNames(...))
{
Display(name);
}
Run Code Online (Sandbox Code Playgroud)
返回null会强制您的调用者编写额外的代码:
一个额外的局部变量(以避免必须两次调用你的函数)
List<string> names = FindNames(...);
if (names != null)
{
foreach (string name in names)
{
Display(name);
}
}
Run Code Online (Sandbox Code Playgroud)所以返回一个空列表更好.
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |