F#中的简单类型测试

时间:2011-06-10 13:00:34

标签: f# c#-to-f#

我一直在谷歌搜索一段时间......好吧,对不起,这个很容易,但F#中有一个运算符比较类类型,比如C#中的'is'关键字?我不想使用完整的匹配声明或开始铸造东西。干杯

2 个答案:

答案 0 :(得分:25)

您可以将:?构造用作模式(在match内)或作为运算符:

let foo = bar :? System.Random

这与C#中的行为略有不同,因为编译器仍尝试在编译时进行一些检查。例如,如果结果肯定是false

,则使用它是错误的
let bar = 42
let foo = bar :? System.Random // Error

我认为这不会导致混淆,但您可以随时添加box将参数转换为obj,可以针对任何类型进行测试:

let foo = box bar :? System.Random

答案 1 :(得分:6)

如果您想要一般的C#-to-F#快速参考,请参阅

http://lorgonblog.wordpress.com/2008/11/28/what-does-this-c-code-look-like-in-f-part-one-expressions-and-statements/

回答了这个问题和许多其他问题。