ページ 11

CとC#の列挙型の違いについて

Posted: 2015年3月08日(日) 22:23
by aridai
C#を学び始めて思ったことがあったのでトピックを建てさせていただきました。
Cではenum列挙体を使いたいときは

コード:

enum CAT
{
    tama,
    pochi,
    taro
};
enum CAT cat;
のように書くと思うのですが、
C#の列挙型は

コード:

enum CAT
{
    tama,
    pochi,
    taro
};
とするだけで
列挙型の変数を宣言しなくても使えるのでしょうか。
CとC#が混同してよくわからなくなりました。
CとC# では 列挙型を書いた時に作られるものが違うのでしょうか。

Re: CとC#の列挙型の違いについて

Posted: 2015年3月08日(日) 22:37
by YuO
aridai さんが書きました:Cではenum列挙体を使いたいときは

コード:

enum CAT
{
    tama,
    pochi,
    taro
};
enum CAT cat;
これは,列挙型CATの宣言とCAT型の変数catの宣言です。
aridai さんが書きました:C#の列挙型は

コード:

enum CAT
{
    tama,
    pochi,
    taro
};
これは,列挙型CATの定義です。

C#で列挙型の変数が必要なら,

コード:

CAT cat;
と書けば定義できますし,Cでも変数の宣言をせず

コード:

tama
と書けば列挙値を利用可能です。
オフトピック
C#では列挙型はスコープを作成するので,

コード:

CAT.tama
のように書く必要がありますが。

Re: CとC#の列挙型の違いについて

Posted: 2015年3月08日(日) 22:46
by aridai
返信ありがとうございます。
私はてっきり
列挙型〇〇の定義をする

〇〇型の変数 △△を宣言する

これで使えるようになる

と思っていました。

Re: CとC#の列挙型の違いについて

Posted: 2015年3月08日(日) 22:57
by aridai

コード:

enum CAT
{
    tama,
    pochi,
    taro
};
CAT cat;
cat = CAT.tama;
ですか。

Re: CとC#の列挙型の違いについて

Posted: 2015年3月08日(日) 23:20
by aridai
私はCでゲームを作っている時に
プレーヤーの状態を表したいときに

コード:

enum STATUS
{
    normal_mario, // ノーマルマリオ (仮)
    super_mario, // スーパーマリオ (仮)
    fire_mario // ファイアマリオ (仮)
};
enum STATUS playerstatus;
playerstatus = normal_mario;
というようにして
定数のように使用しているのですが、
C#でもこのように使えますか。

Re: CとC#の列挙型の違いについて

Posted: 2015年3月09日(月) 01:37
by へにっくす
aridai さんが書きました:C#でもこのように使えますか。
使えます。
YuOさんがオフトピックで書いてるように、

コード:

playerstatus = STATUS.normal_mario;
とする必要がありますが

・・・ってNo.4ですでに分かってますね

Re: CとC#の列挙型の違いについて

Posted: 2015年3月09日(月) 04:31
by aridai
なるほど、ありがとうございます。
私は猫でもわかるシリーズで勉強しているのですが、
C#の列挙型の説明が2ページしかなくて
ググってもCとの違いがよくわからなくて…
本当にありがとうございます。

Re: CとC#の列挙型の違いについて

Posted: 2015年3月11日(水) 16:33
by aridai
理解できました。
ありがとうございました。