2012-12-13 105 views
1

鑑於行:什麼是:?>在f#中的含義?

let win = XamlReader.Parse(xaml) :?> Window 

什麼:?>在做什麼?

我試過查找三元但不知道:?,它似乎是用於型式測試?另外我知道>是管道,但Window沒有任何構造參數。

回答

9

這是動態的鑄造操作員,它與管道無關。我上向下轉換引述MSDN section

:?>操作執行動態轉換,這意味着,中投的成功 在運行時確定。在編譯時不會檢查使用:?> 運算符的譜;但在運行時,嘗試 將轉換爲指定的類型。如果對象與目標類型兼容 ,則投射成功。如果對象不是與目標類型兼容的 ,則運行時將引發一個 InvalidCastException

相關問題