首页 > 解决方案 > 这个语句可以用 ?? 来简化?或者 ?。运营商?

问题描述

我想知道是否可以使用??or来简化以下内容?.

private static Stream OpenData(string filename)
   => Loader == null ? throw new Exception("...") : Loader.GetStream(filename);

请注意,我不关心可读性。

标签: c#

解决方案


如果在 null 的情况下仍然抛出异常,为什么不直接调用该方法呢?

Loader.GetStream(filename);

如果Loader为null,则抛出空引用异常,否则成功调用该GetStream方法。

在旁注 -Loader看起来像type(基于命名约定)......我会假设它是一个实例变量,因为编译器会阻止typenull.


推荐阅读