IT

【C#入門】enumの使い方とポイントを現役エンジニアが解説

おなやみくん
C#勉強中です。enum(列挙型)の使い方やポイントなどあれば教えてください。

そんな疑問に回答します。

 

この記事を書いている人

  • 年齢:34歳
  • 住まい:東京
  • 仕事:フリーランスエンジニア
  • C#歴:11年

enum(列挙型)はうまく使えばとても便利なのですが、どう使えばいいかが少しわかりにくい型でもあります。

僕自身の経験も踏まえた上で、使い方や使う上でのポイントをお伝えします。

 

本記事を読むと以下のことがわかるようになります。

  • enum(列挙型)とは?
  • enumを使う際に気をつけるべきポイント
  • 未経験からエンジニアになりたい人向けの話

それではさっそく参りましょう。

【C#入門】enumの使い方とポイントを現役エンジニアが解説

ここからはC#の使い方や、僕が11年以上C#を使ってきた中で培ってきた使用のコツをお伝えします。

enum(列挙型)とは?【使い方を説明】

まずは「そもそもenumってなに??」という方に向けて、

  • どんな型なのか
  • どんな使い方をするのか

といった概要を話していきます。

 

型の説明や使い方については、僕が自分の言葉で話すよりもより権威のあるところの力をお借りします(笑)

開発元でもあるMicrosoftのサイトには、以下のように説明がされています。

"列挙型" は、基になる整数値型の一連の名前付き定数によって定義された値の型です。

(中略)

既定では、列挙型メンバーの関連する定数値の型はintで、0 から始まり、定義テキストの順序に従って 1 ずつ増加します。他の任意の整数値型を、列挙型の基になる型として明示的に指定できます。

引用元:列挙型 - C# リファレンス | Microsoft Docs

びっくりこさん
うーん、わかるようなわからないような・・・。具体的にどんな風に使うんですか??
いい質問ですね。言葉だけでは少しわかりにくいと思うので、具体的にソースコードを紹介しつつ説明しますね。
さかい

enum Season
{
	Spring,
	Summer,
	Autumn,
	Winter
}

これがenumの書き方なのですが、この例でいうと

ポイント

  • Season:列挙型の定義名
  • Spring~Winter:列挙型Seasonを構成する要素

といった感じです。

そして特に指定しない場合は、Springから順に0から3の整数値が設定されます。

 

おなやみくん
使い方はなんとなくわかりましたが、どんな時に使うのかがいまいちイメージ湧きません。
それではここからは、enumを使うタイミングやポイントについて話を進めていきますね。
さかい

1.区分けされたグループを定義する場合に使用する

使い方のポイント1つ目は、『区分けされたグループを定義する場合に使用する』ということです。

使い方の例で出した【Season(季節)】がもっともわかりやすいですね。

 

季節というグループの中に春夏秋冬という4つの区分けがあります。

こういった区分けを表現したい場合にenumは有効です。

季節という誰でもわかる区分けはもちろん、システム独自の区分を表現するときも使えます。

ただただInt型の定義を並べるよりも、enumで表現したほうがグループであることがかなりよく伝わりますよね。

2.文字列と数字を紐づけることができる

enumを使う上でのポイント2つ目は、『文字列と数字を紐づけることができる』という点です。

びっくりこさん
え??どういうこと??!

通常Int型なら整数を意味し、String型なら文字列を意味します。

enumはこのどちらの側面もあるということです。

 

さきほどのSeasonで解説します。


enum Season
{
	Spring,
	Summer,
	Autumn,
	Winter
}

 

例えばここでいうSpringは、int型の”0”としても使えますし、String型の”Spring”としても使えるんです。

基本は整数として機能することが多いんですが、文字列としても使えるのは意外と盲点なので知っておくといざという時に使える・・・かもしれません(笑)

3.データベースや外部ファイルで代替する方法もある

enumを使う際のポイント3つ目は、『データベースや外部ファイルで代替する方法もある』ということです。

これはenumについてとは少し観点が違いますが、なんでもかんでもenumでやりゃあ良いってもんじゃないというのが伝えたいことです。

覚えたてのことってついつい使いたくなってしまうんですが、使う前に他の方法でもできないかを考えてほしいんです。

 

データベースにデータを入れることによって同じことができれば、メンテナンスがしやすい(変更があった際にソースを修正せずに済む)というメリットもあります。

xmlやconfigファイルを使えばデータベースにアクセスすることなく、テキストファイルを修正するだけでできるかもしれません。

こういったことを考慮したうえで、でもやっぱりenumが最善であると判断したらenumを使うといいでしょう。

ただなんでもかんでもenumにするのではなく、他の方法でも代替できて、その方法のほうが効果的かどうかをさまざまな観点で検討しましょう。

未経験からとにかく早くエンジニア転職を目指すならプログラミングスクール

ここまではenum(列挙型)の使い方やポイントを話してきましたが、ここからは未経験からとにかく早くエンジニア転職をしたい方向けに話をします。

結論から言うと、スピード重視でエンジニアを目指すならプログラミングスクール受講するのが一番の近道です。

 

独学ではエンジニアになれないの??

という疑問を持つ方がいそうですが、独学でも全然問題はないと思います。

僕自身は未経験からシステムエンジニアになりましたし、会社の研修を受けながら学んできてC#やその他のプログラミング言語の学習をしてきました。

ただ、もしあなたが、

  • 未経験から
  • なるべく早く
  • 効率よく

エンジニア転職したいと思っているとしたら、プログラミングスクールに通うべきだと断言します。

僕の場合は会社から給料をいただきながら勉強できたのでよかったのですが、未経験からの転職の場合はちょっと話が変わってきます。

一人で学習すると効率も良くないですし、何より結果にコミットしにくいです。

 

決して安い金額ではないですが身銭を切って学習することで、うしろのドアを閉めるきっかけにもなります。

TechAcademy [テックアカデミー]なら完全オンラインで自宅で学習できます。

どんなプログラミングスクールがいいのかわからない方は、まず間違いなくおすすめできるサービスです。

  • 国内最大規模のプログラミングスクールであること
  • 完全オンラインで学習できること
  • 無料体験があること

などの観点から、迷う時間がもったいない人には良いでしょう。

 

無料体験で雰囲気も味わえるので、ぶっちゃけリスクもゼロです。

いったん無料でお試ししてみて、合いそうだったらお金払えばいいや

といった軽い感じではじめられるので、ぜひやってみてください。

 

「テックアカデミーを実際に受講した人の評判・口コミを知りたい!」

「テックアカデミーを受けるメリット・デメリットを知りたい!」

そんな方はこちらの記事もご覧ください。

【テックアカデミー】評判・口コミ徹底調査!最高?ひどい?実態を丸裸にします

 

おわりに

今回は、『【C#入門】enumの使い方とポイントを現役エンジニアが解説』というテーマでお届けしました。

本記事を読むことによってenum(列挙型)についての理解が深まっていれば幸いです。

 

基礎基本をしっかり学んで、C#マスターになっていきましょう!

以上となります。

-IT
-, , , , , ,

© 2021 さかこじぶろぐ Powered by AFFINGER5