c# – ReSharper想要“优化”我的代码
发布时间:2020-12-15 19:58:06 所属栏目:百科 来源:网络整理
导读:以下是…… SomeType _someProperty; public SomeType SomeProperty { get { if (_someProperty == null) _someProperty = new SomeType(); return _someProperty; } } …具有与以下相同的功能? SomeType _someProperty; public SomeType SomeProperty { ge
以下是……
SomeType _someProperty; public SomeType SomeProperty { get { if (_someProperty == null) _someProperty = new SomeType(); return _someProperty; } } …具有与以下相同的功能? SomeType _someProperty; public SomeType SomeProperty { get { return _someProperty ?? (_someProperty = new SomeType()); } } 根据ReSharper他们的确如此.如果是这样,有人可以解释第二个块的语法吗? 解决方法
是的,它们是相同的功能.
??如果不为null,则运算符返回运算符之前的值,如果前一个值为null,则返回运算符之后的值. 在这种情况下,通过将表达式的第二部分包装在params中,如果__requiredFieldValidator为null,则在返回之前将新对象分配给_requiredFieldValidator支持字段. 如果没有括号,则在返回之前不会分配,这会导致以下编译错误:
括号保证正确计算赋值表达式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |