2012-07-12 72 views
5

超級簡單的問題我敢肯定,但我通常不會做F#,所以對語法有點新鮮。F# - 什麼與...匹配:? X as x是什麼意思?

我如何看下面的代碼片段:

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

具體來說,我不知道什麼PictureBrush指。在這個文件中沒有任何其他地方提及它

回答

8

這是Type Test Pattern

PictureBrush是一種類型。 shape.Fill匹配:? PictureBrushFill屬性可分配給該類型。

1

它是一個類型比較。像C#中的typeof(xx)一樣。所以匹配PictureBrush的類型。

+3

我認爲它更像['is'](http://msdn.microsoft.com/en-us/library/scekt9xw(v = vs.110).aspx)。 – Daniel 2012-07-12 19:59:33

2

另請注意,as允許將變量綁定爲該類型。所以pb將是PictureBrush類型,但將具有與shape.Fill解析爲完全相同的值。

相關問題