2017-08-13 13 views

答えて

3

正しいですが、私もそれがない通常を行うことに注意します直接列挙インスタンスのタイプを参照するために多くの意味をなします。通常、次のようなコードを記述します。

void test(Foo foo) { 
    if (foo!=bar) { 
     print("Not bar!"); 
    } 
} 
+1

通常、タイプを絞り込むことには同意しません。それが意味をなさない状況は、 'bar'や' baz'があなたが使いたい新しい属性やメソッドを宣言した場合です。 – gdejohn

+1

もう一つの面白いケースがあります:オプションのセットをインスタンスのサブセット、例えば '\ Ioption1 | \ Ioption4 | \ Ioption5'のように狭めたい場合です。 –

1

barは列挙されたインスタンスなので、それは単なる値であり、型ではありません。しかし、Fooよりも具体的なタイプがあります。これには、接頭辞「\I」を付けることができます。 gdejohnの答え@

void test(Foo foo) { 
    if (!is \Ibar foo) { 
     print("Not bar!"); 
    } 
} 
関連する問題