2017-07-20 5 views
2

私はプライベート列挙型を使用するこのクラスを持っています。プライベート列挙型で「静的使用」機能を使用できないのはなぜですか?何か別の選択肢はありますか?

using static ConsoleForSimpleTests.Foo.MyEnum; 

namespace ConsoleForSimpleTests 
{ 
    public class Foo 
    { 
     private enum MyEnum { I, DonT, Want, This, To, Be, Public } 

     private MyEnum value; 

     public void SomeMethod() 
     { 
      switch (value) 
      { 
        case I: 
        case DonT: 
        case Want: 
        case This: 
        case To: 
        case Be: 
        case Public: 
         break; 
      } 
     } 
    } 
} 

注:これはコンパイルできないし、それがMyEnumの保護レベルが原因である理由、私は理解して、私は次のように、機能「静的を使用した」C#6を使用したいと思います。私がアクセス修飾子をinternalまたはpublicのどちらかに変更すると、それは動作します。私が不思議に思うのは、これが単に不可能なのかどうか、もしそうなら、なぜこれは不可能なのでしょうか?

+1

申し訳ありませんが、質問のその部分をはっきりとスキップしました。 –

+0

@BJ Myers 'staticを使用すると、実際にenum値に対して機能します。ここでの問題はアクセス修飾子です。プライベート列挙型を内部または公的に変更した場合、それは動作します – taquion

+0

@taquionあなたは正しいです、私の悪い - 私は十分にあなたの質問を読んでいませんでした。 –

答えて

2

可能で、同じファイルに他のクラスがある場合、インポートしたシンボルはそのクラスからは見えません。

これは混乱します。これはおそらく動作しない理由です。

関連する問題