我想知道是否可以使用??
或?.
简化以下内容。
private static Stream OpenData(string filename)
=> Loader == null ? throw new Exception("...") : Loader.GetStream(filename);
请注意,我不在乎可读性。
答案 0 :(得分:2)
如果在null的情况下仍然抛出异常,为什么不直接调用该方法呢?
Loader.GetStream(filename);
如果Loader为null,它将抛出null引用异常,否则将成功调用GetStream
方法。
在旁注中-Loader
看起来像type
(基于命名约定)...我将假定它是一个实例变量,因为编译器将阻止比较{{1} }到type
。
答案 1 :(得分:2)
您可以获得与您所拥有的完全相同的行为
private static Stream OpenData(string filename)
=> (Loader ?? throw new Exception("...")).GetStream(filename);
请问这是否更清楚。