如何解决使用空合并运算符的独特方法
嗯,首先,它比标准的三元运算符更容易链接:
string anybody = parm1 ?? localDefault ?? globalDefault;
对比
string anyboby = (parm1 != null) ? parm1
: ((localDefault != null) ? localDefault
: globalDefault);
如果可能为 null 的对象不是变量,它也可以很好地工作:
string anybody = Parameters["Name"]
?? Settings["Name"]
?? GlobalSetting["Name"];
对比
string anybody = (Parameters["Name"] != null ? Parameters["Name"]
: (Settings["Name"] != null) ? Settings["Name"]
: GlobalSetting["Name"];
解决方法
我知道在 C#
中使用空合并运算符的标准方法是设置默认值。
string nobody = null;
string somebody = "Bob Saget";
string anybody = "";
anybody = nobody ?? "Mr. T"; // Returns Mr. T
anybody = somebody ?? "Mr. T"; // Returns "Bob Saget"
但是还能??
用来做什么呢?它似乎不如三元运算符有用,除了更简洁和更易于阅读之外:
nobody = null;
anybody = nobody == null ? "Bob Saget" : nobody; // Returns Bob Saget
因此,鉴于很少有人知道空合并运算符…
-
你用过
??
别的吗? -
是
??
必要的,或者您应该只使用三元运算符(大多数人都熟悉)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。