投稿によるとhttp://cs.hubfs.net/forums/thread/3616.aspx、 私はインターフェイスにオブジェクトをキャストするために、私はテストを実行しました、これはまだtrueのバグ:?>はまだです未修理。インターフェイスへの動的キャスト
let cast<'a> o = (box o) :?> 'a
let ci = { new Customer(18, Name = "fred") with
override x.ToString() = x.Name
interface ITalk with
member x.Talk() =
printfn "talk1111111" }
let italk = cast<ITalk> ci
if not (italk = null) then
italk.Talk()
上記のコードを書くには、よりエレガントな方法がありますか? ?>のように渡されるジェネリック型パラメータを取得できません:?>
私はオペレータを作成し、O以下 letのような=(ボックスO):?>「 ましょうITX:ITalk => CI itx.Talk() が、そこの欠点は、識別子の注釈として入力する、とするようなタイプは何があるということではありません!コンパイル時のチェック –