2012-07-12 4 views
5

Super einfache Frage Ich bin sicher, aber ich mache F # in der Regel nicht so ein bisschen neu in der Syntax.F # - was passt zu ... mit | :? X als x bedeuten?

Wie lese ich das folgende Codefragment:

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

Insbesondere bin ich nicht sicher, was PictureBrush bezeichnet. Es gibt nicht wirklich einen Verweis darauf irgendwo anders in dieser Datei

Antwort

8

Dies ist die Type Test Pattern.

PictureBrush ist ein Typ. shape.Fill entspricht :? PictureBrush, wenn die Eigenschaft Fill diesem Typ zugewiesen werden kann.

1

Es ist ein Typvergleich. Wie typeof (xx) in C#. Passt also zum Typ von PictureBrush.

+3

Ich denke, es ist mehr wie ['is'] (http://msdn.microsoft.com/en-us/library/scekt9xw (v = vs.110) .aspx). – Daniel

2

Beachten Sie auch, dass die as Bindung einer Variablen dieses Typs ermöglicht. Also pb wird vom Typ PictureBrush sein, aber wird genau den gleichen Wert wie was shape.Fill gelöst haben.

Verwandte Themen