F# - 与...匹配的是什么:? X是x意味着什么?

时间:2012-07-12 16:17:06

标签: syntax f#

超级简单的问题我很确定但是我不做F#通常对语法有点新意。

我如何阅读以下代码片段:

        match shape.Fill with
          | :? PictureBrush as pb ->
              //....

具体来说,我不确定PictureBrush指的是什么。在这个文件中的任何其他地方都没有任何引用

3 个答案:

答案 0 :(得分:8)

这是Type Test Pattern

PictureBrush是一种类型。当shape.Fill属性可分配给该类型时,:? PictureBrush匹配Fill

答案 1 :(得分:2)

另请注意,as允许将变量绑定为该类型。因此pb的类型为PictureBrush,但其值与shape.Fill解析的值完全相同。

答案 2 :(得分:1)

它的类型比较。就像C#中的typeof(xx)一样。所以匹配PictureBrush的类型。