35
|
Judah Gabriel Himango · 技术社区 · 15 年前 |
1
18
有趣的是,有这么多人独立地选择了这个名字
我发现的最早的一个,所以: Possible pitfalls of using this (extension method based) shorthand 我的那个(不知道上面说的话): Pipe forwards in C# 另一个最近的例子: How to check for nulls in a deep lambda expression?
有几个原因可以解释
我一直在玩
我最终得到了一个简单的自给自足的
|
2
14
虽然我很喜欢扩展方法,但我认为这并没有什么帮助。你仍然有表达式的重复(在单态版本中),这意味着你必须解释
这个
也许有一天我们会得到一个空安全解引用操作符… 另外,我最喜欢的半邪恶扩展方法是:
这样你就可以:
进入:
参数名仍然有令人讨厌的重复,但至少它更整洁。当然,在.NET 4.0中,我会使用代码契约,这就是我现在要写的内容…栈溢出是很好的避免工作;) |
3
1
如果希望扩展方法减少嵌套if,可以尝试如下操作:
所以在你的代码中你只需要:
我不知道我是否愿意经常使用它,因为思考的缓慢,我并不真的认为这比选择更好,但它应该工作,无论你是否击中一个空的一路上… (注意:我可能把这些类型弄混了):) |
4
1
如果您处理的是C 6.0/Vs2015及更高版本,那么它们现在有了一个用于零传播的内置解决方案:
|
5
0
初始样本可以工作,并且是最容易阅读的一瞥。这方面真的需要改进吗? |
6
0
ifnotnull解决方案是最好的(直到c团队给我们一个空安全的解引用操作符,也就是说)。 |
7
0
我对这两种解决方案都不太着迷。原始版本的ashorter有什么问题:
如果不是这样,那么我将考虑编写一个NotNullChain或FluentNotNull对象,而不是在一行中链接几个非空测试。我同意ifnotnull扩展方法对空值的作用有点奇怪——尽管扩展方法只是语法上的糖分。 我认为MarkSynowiec的答案可能是通用的。 imho,我认为核心团队应该关注这个“问题”,尽管我认为还有更大的事情要解决。 |
8
0
当然,原始的2嵌套if比其他选项更可读。但建议您更一般地解决问题,这里是另一个解决方案:
哪里
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |