IT

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

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

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

 

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

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

 

本記事を書いている僕はこんな人です。

この記事を書いている人

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

 

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

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

 

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

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

ここからはC#の使い方や、僕が10年以上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にするのではなく、他の方法でも代替できて、その方法のほうが効果的かどうかをさまざまな観点で検討しましょう。

 

未経験からとにかく早くC#習得を目指すならプログラミングスクール

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

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

 

独学ではC#を習得できないの??

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

僕自身はスクールに通ったことはありませんし、会社の研修を受けながらC#やその他のプログラミング言語の学習をしてきました。

 

ただ、もしあなたが、

未経験から、

なるべく早く、

効率よく、

C#を習得したいと思っているとしたら、プログラミングスクールに通うべきだと断言します。

 

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

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

 

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

例えば、大手プログラミングスクールのTechAcademy(テックアカデミー)なら完全オンラインで自宅で学習できます。

 

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

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

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

 

C#を学びたい方なら、中でも『Unityコース』が適しています。

ゲーム開発を学びつつ、C#の基礎基本から実務レベルまで学べますよ。

詳しくはこちらの記事をご覧ください。

【テックアカデミー】Unityコースでゲームエンジニアに転職しよう

 

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

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

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

 

 

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

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

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

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

 

【必見】合わせて習得したいプログラミング言語

ここからはC#と合わせて習得したいプログラミング言語について話していきます。

 

どんな案件をやるにしても、1つの言語だけというよりは複数言語を合わせて仕事することが多いです。

C#と一緒に習得すべき言語とは何なのでしょうか?

 

フロントエンド系言語

いろんな意見があると思いますが、個人的にはフロントエンド系の言語がC#と合わせて習得すべきだと考えます。

いわゆるエンドユーザーから直接見える部分に関わる言語ですね。

C#という言語がバックエンド系なので、合わせて習得するならフロントエンドが良いでしょう。

 

1.HTML+CSS

Webサイトの基本はHTMLとCSSです。

これを理解していると、普段利用しているWebページを見て、「こんな感じなら自分でも作れるな」とか思うようになります。

※正確に言うとHTMLとCSSはプログラミング言語ではありませんが、ここでは広義の言語として同じくくりにしています。

 

2.JavaScript(ジャバスクリプト)

JavaScriptは、Webページを動的に表示するために用いられます。

これを習得すると、作れるシステムの自由度が広がります。

また、Node.jsやAngularなどのライブラリも充実しているため、できることの幅も年々広がっていて注目の言語です。

 

ちなみに、JavaScriptとJavaはまったく別の言語なので注意してください。

 

3.Bootstrap

Bootstrapは、Twitter社が開発したCSSのフレームワークのことを指します。

要するに、CSSでできるデザインをより簡単に作ることが可能になります。

メリットとしてレスポンシブ(ブラウザやスマホ・タブレットに限らず)にデザインを形成することができます。

 

おわりに【C#の基礎を身に付けてスキルアップしよう】

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

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

 

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

本記事は以上となります。

  • この記事を書いた人

サカイユウヤ

エンジニアブロガー【経歴】1986年生まれ ▶ 茨城県出身 ▶ 大学で福島県へ ▶ 就職で東京 ▶ 某SIer企業で丸7年正社員として勤務 ▶ 独立してフリーランスエンジニア ● 2020年7月ブログスタート ● エンジニア歴12年(内フリーランス歴5年)

-IT
-, , , , , ,

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