を階層C#クラス対組合を区別:F#が、私は次のコードを持っている
public abstract class A ...
public class B : A ...
public class C : A ...
void my_fct(A x) {
if (x is B) { block_1 }
else if (x is C) { block_2 }
else { block_3 }
}
をし、それがF#の
type a = B | C
let my_fct x =
match x with
| B -> (block_1)
| C -> (block_2)
| _ -> (block_3)
から良い訳ですかしら?
私はそれが大丈夫だと思います。あなたが欠けていることを除いて。 block_1、block_2、block_3の後に –
私の無知を許しますが、F#スニペットでは 'block_3'は決して実行できません(代数データ型は私が知る限り「閉じています」)。また、翻訳で多形性を使うべきだと私は思っていますか? – delnan
あなたはblock_3について完全に正しいです。 – Hugo