我见过一些开发人员out在 void 函数的参数列表上使用关键字。我不太清楚下面的代码的优点和缺点:
List<string> listOfResult;
public void public void (out listOfResult)
{
//bla bla
}
Run Code Online (Sandbox Code Playgroud)
相对
public List<string> c(out listOfResult)
{
List<string> list= new List<string>();
//bla bla
return list;
}
Run Code Online (Sandbox Code Playgroud)
这两个代码片段是否完全有效,或者关键字是否有任何问题out?
out当您需要从函数返回多个值时,关键字会很方便。很好的例子是TryXXX方法,它返回操作状态而不是抛出异常:
public bool TryParse(string str, out int value);
Run Code Online (Sandbox Code Playgroud)
但我不认为有任何理由将单个out参数与 void 方法一起使用...只需从方法中返回该值即可。使用起来会容易得多。比较:
List<string> list;
GetList(out list); // confusing method name
Run Code Online (Sandbox Code Playgroud)
和
List<string> list = GetList(); // nice name, one line of code
Run Code Online (Sandbox Code Playgroud)
如果获取列表可能会引发异常,那么您可以创建如下方法:
List<string> list;
if (TryGetList(out list)) // better than exception handling
{
// list was filled successfully
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |