2012-07-12 11 views
5

スーパーシンプルな質問私は確信していますが、私はF#を書かないでください。F# - 何が一致しますか? :? Xはxを意味する?

は、どのように私は次のコードの断片を読んでください:

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

具体的には、私はPictureBrushが参照するかわからないんだけど。このファイルの他の場所には実際には参照がありません。

答えて

8

これはType Test Patternです。

PictureBrushはタイプです。 Fillプロパティがそのタイプに割り当て可能な場合、shape.Fill:? PictureBrushと一致します。

1

これは型の比較です。 C#のtypeof(xx)と似ています。 PictureBrushのタイプに合わせてください。

+3

私はそれが['is'](http://msdn.microsoft.com/en-us/library/scekt9xw(v = vs.110).aspx)のように思えます。 – Daniel

2

また、asは、そのタイプの変数をバインドすることができます。したがってpbPictureBrushのタイプになりますが、解決された値は全く同じ値になります。shape.Fill

関連する問題