C#は少しだけ実務で経験しましたが、経験としては浅いため今回知見を広げるために、改めてC#について学んでみようと思います。
業務システムやモバイル、据え置きなどのゲーム開発でも使用されているので、覚えておくことで今後の選択肢の一つとして選べるようにしておきます。
【初心者用】C#とは
1. そもそも Python って何?
C#とはWindows向けの実行環境.NETFramework上で動作します。
C#はマイクロソフトが開発しているプログラミング言語であり、開発の具体例としてはマイクロソフトの公式サイトなどがC#で作成されています。
C#は基本的にはC++と文法や構文は似ており、かつC++とJavaの理解しやすく便利な部分が取り入れられています。
C++はC言語との互換性が在りますが、C#はC言語とC++との互換性がないので一部だけ使用するなどはできないようになっています。
上記の理由としてはCと名称についていますが、C#は基本的にはオブジェクト指向の言語となります。
ですので、C言語やC++との互換性や関連性がないため互換性がありません。
2. C言語とC++との違いについて
上記で少し述べましたがC++とC言語は、C#とは互換性が在りません。
それについて以下にまとめていきます。
C#はJavaと同じようにガーベージコレクションを使用することができます。
これはプログラムがメモリ領域を確保した際に、不要になった領域を自動的にリリースするという機能です。
ガーベージコレクションの機能はC++やC#では扱うことはできず、こちらがC#との大きな相違点となっています。
また、C#はコンパイラ言語となっていますが、インタプリタ言語としても使用することができます。
C#はマルチパラダイム言語として開発されているので、CILを使用した事前コンパイル、疑似スクリプト言語化など様々な方法で実行が可能となっているためです。
ちなみに、C#とは違いC++とC言語はコンパイラ言語となっています。
2-1. コンパイラ言語
プログラミング言語で記述されたプログラムを、コンピューターが理解できる機械語に全て変換してからプログラムを実行するプログラミング言語です。
2-2. インタプリタ言語
プログラミング言語で記述されたプログラムを、コンピュータが理解できる機械語に1行ずつ変換しながらプログラムを実行するプログラム言語です。
3. C#の特徴
C#の特徴を理解しておくことで、C#を使用した開発プロジェクトをよりスムーズに進めることができます。
以下にそれぞれの特徴について詳細をまとめていきます。
3-1. 初心者でも学習しやすい
C#は比較的にC++やC#よりも使用しやすく、覚えやすいので初心者でも学びやすいのが特徴となっています。
歴史的に使用されている期間が長く、マイクロソフトが開発している言語ですので、マイクロソフトが提供しているツールでの開発が可能となっています。
サポートが手厚いのでプログラミング初心者でも、ある程度学習をすることにより簡単に使いこなすことができます。
C#には公式ライブラリ以外でも、多数のライブラリが使用できるので、初心者でも熟練者でも扱いやすい環境が備わっています。
3-2. オブジェクト指向を使用している
C#はJavaと同じようにオブジェクト指向の考え方が取り入れられています。
オブジェクト指向とはメソッドと属性を1つにまとめて、まとめたオブジェクトごとにクラスを分類します。
そのクラス同士を組み合わせることにより、システムを構築していくという考え方です。
オブジェクト指向を使用しているプログラミング言語では、プログラムの追加や修正の際に各機能ごとに主性を行うため、他の機能のプログラムに影響が出ません。
このように独立性・再利用性・拡張性が保たれているので、それぞれの機能をモノとして考えることができ、それを組み立てるイメージで構築をすることができます。
3-3. Javaと似た文法
C#はC++とJavaを基本としたプログラミング言語として開発されました。
また、オブジェクト指向の考えで開発するため、Javaと文法などは似ている特徴があります。
ですので、事前にJavaを理解しておくと躓くことなくスムーズに学ぶことができると思います。
Javaが理解できていればC#を理解できるように、C#を理解できていればJavaを新たに勉強する際にも役に立ちます。
3-4. C#はUnityとVisual Studioとも相性が良い
C#の開発ではUnityとVisual Studioと良いことが知られています。
Visual Studioはマイクロソフトが開発しており、C#もマイクロソフトが開発しているため相性が良くなっています。
Visual Studioはマイクロソフト提供の統合開発環境なので、C#で開発する方であれば触れる機会が多くなるツールになります。
Unityは主にゲーム開発で使用されており、比較的にシンプルな手順で3Dや2Dゲームを作成でいます。
また、Visual Studio Tools UnityとUnityが連携することが可能で、開発のサポートが手厚いため開発がやり易くなっています。
実際にUnityで開発されたゲームは大手やインディーズ含め多数開発されています。
モバイルゲームだとポケモンGOなども、C#を使用して開発をされています。
4. C#のメリット・デメリット
C#学ぶ上でメリットとデメリットを以下にまとめます。
4-1. ■メリット
・多種多様なプラットフォーム向けの開発が可能
C#は特定のプラットフォームに依存することがなく、Windows,Mac,Android,iOSなどの様々なOSで開発をすることができます。
開発言語によっては各OSごとに環境構築が必要な場合がありますが、C#では統合開発環境であるVisual Studioがあるため簡単に始めることができます。
・開発環境が充実
C#はフレームワークや開発環境が整備されており、簡単で効率的な開発が可能となっています。
アプリケーション開発では、よく利用されている機能に関してはあらかじめ部品として機能が提供されています。
それらがフレームワークに提供されており、これらの機能をまとめているファイルをライブラリと呼ばれています。
C#に関しては歴史が長いため、使用できるライブラリが他言語よりも豊富にあり充実しています。
ですので、開発する際にも何か欲しい機能があれば、すでにライブラリが追加されている場合があります。
上記の様に簡単に機能を追加することができるため、開発する際にはスムーズに進めることができます。
4-2. ■デメリット
・低スペックPCでも開発は不向き
C#は統合開発を利用して幅広く汎用性が高い開発を行うことができます。
そのため、PCの容量を多く使用することになり、低スペックのPCでは開発が難しくなっています。
5. まとめ
少し自分のゲームを開発したい気持ちがあったので、今回は学んだC#を元に好きなものを作成したいと思います。
歴史の長い言語となっているので、これからプログラムの勉強をする人はC#を使用して、オブジェクト指向の考えを学んで開発をしてもよいかと思います。