- PR -

列挙型(enum)

1
投稿者投稿内容
まよかん
常連さん
会議室デビュー日: 2003/08/10
投稿数: 27
お住まい・勤務地: 大阪
投稿日時: 2003-08-14 16:14
クラスAで列挙型オブジェクトを作成し、クラスAをインスタンス化した
クラスBから列挙型の参照ができずに困っています。

例)
public class A
{
  public enum Error {X = 0, Y = 1, Z = 2};
   …処理…
}

class B
{
  A a = new A()
  a.Error.X // インテリセンスも使用できずエラー
}

列挙型はインスタンスからは参照できずに
宣言したクラス内でしか使用できないのでしょうか。
それとも何か考え違いでもしているのでしょうか。。

何かアドバイスを頂ければ幸いです。
よろしくお願いします。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2003-08-14 16:44
A.Error.A とクラス名を使えばいいのではないでしょうか?
まよかん
常連さん
会議室デビュー日: 2003/08/10
投稿数: 27
お住まい・勤務地: 大阪
投稿日時: 2003-08-14 17:16
ありがとうございます!
確かに上記のようにすることで動作しました。
しかし原因がいま一つわかりません。

どこか理解違いをしているのだと思いますが
なぜ上記のようにすることにより動作するのでしょうか。
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2003-08-14 18:54
あくまで型の定義なので、インスタンスは必要ありません。
class内で定義したclass型と同様の動作になります。
dai
ベテラン
会議室デビュー日: 2001/08/28
投稿数: 85
投稿日時: 2003-08-18 17:34
正式な名前は、
・A クラス
・A.Error 列挙体
・B クラス
となります。
なので、ネストされた列挙体(クラス)のA.Error は、
きちんとA.Error と指定しなくてはいけません。
1

スキルアップ/キャリアアップ(JOB@IT)