![]() |
1
6
C#7.0支架
没有懒惰的评估,但是你不再需要你的助手方法了。 |
![]() |
2
3
我想你在找 throw expressions 在C#7中添加的。
最常见的用法之一是空参数验证
懒惰的评价 对于懒惰的评估,您必须返回 功能 或者懒汉:
并将其用作:
提供 lazy computations 它还返回一个更方便语法的Lazy:
同样的惰性计算,使用Func:
用作函数:
开关表达式 C#8将添加开关表达式 可能 看起来像这样:
lazy函数可能如下所示:
看起来有点像F# |
![]() |
3
0
给出的答案是正确的,但是我将添加一个答案(到我自己的问题中)来指出一种模拟C#6及以下的抛出表达式的理想方法。对于前向兼容性来说,具有相同的名称和相似的API是很有用的,因此这是我解决的helper类:
还可以生成一个lazy throw表达式,该表达式只有在强制转换为目标值类型时才会抛出。判断是否以使代码不太安全的方式使用这个类(从
各种修饰都是可能的,例如接受不同的异常类型作为参数或通过附加的模板参数,但是我打算在需要这些增强之前保持简单。 |