考虑这段代码:
public int DownloadSoundFile()
{
using (var x= new X())
{
return x.Value;
}
}
这个代码:
public int DownloadSoundFile()
{
if (x!=null)
{
return x.Value;
}
}
第一个代码没有给我们任何编译时错误,但在第二个代码中我们得到了这个错误:
并非所有代码路径都返回值
这意味着我们应该返回if
范围之外的值。
为什么一定要返回作用域外的值,if
却不需要返回作用域外的值using
?