鉴于这一行:
let win = XamlReader.Parse(xaml) :?> Window
:?>
在做什么?
我尝试查找三元但没有注意到:?
,它似乎是用于类型测试?另外我知道>
是管道,但Window没有任何构造函数参数。
答案 0 :(得分:9)
它是动态铸造操作员,与管道无关。我引用MSDN section关于向下倾斜:
:?>
运算符执行动态广告,这意味着成功 演员表是在运行时确定的。使用:?>
的演员 在编译时不检查运算符;但在运行时,尝试 使其转换为指定的类型。如果对象兼容 使用目标类型,演员成功。如果对象不是 与目标类型兼容,运行时提出了一个 InvalidCastException的