1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

プログラミング初心者にオススメする言語、C#の特徴とは?

Pocket

はじめに

この世には100を超えるプログラミング言語があります。
これほどまでにたくさんの言語があるのは改良が続けられてきたという理由もありますが、
それぞれの言語に特徴があるからです。

完璧な言語は今のところ(おそらくこれからも)存在しないので、用途に合わせて言語を使い分ける必要があります。

この記事では、プログラミング初心者の方のためにC#の特徴を説明していきます。

C#ってどんな言語?

C#はマイクロソフトが開発している、オブジェクト指向をメインパラダイム(考え方)とする言語です。これまでバージョンアップを重ね、関数型などの他の言語の機能を取り込みながら成長してきました。現在の最新バージョンはC# 7.0です。

C++やJavaなどを参考に設計されていますので、文法も似ており比較的覚えやすい言語です。
実行環境である「.NET Framework」上で動作する点は、JRE(Java実行環境)上で動作するJavaと類似しています。

Javaと同じく、C#にも「BCL(ベースクラスライブラリ)」という標準ライブラリがあり、ファイル入出力や正規表現、ネットワーク通信など、汎用的な処理のほとんどをこなしてくれます。
C#の学習にBCLは欠かせない要素です。
特に、C# 3.0から導入された「LINQ(Language INtegrated Query)」は生産性向上に大きく貢献してくれるため、ぜひとも習得しておきたい言語機能です。

C#はマネージコードにコンパイルされる

C#はコンパイラ型言語なので、実行前にコードをコンパイルします。
しかし、ネイティブコード(マシン語)にコンパイルされるのではなく、マネージコード(MSIL)という中間言語にコンパイルされます。
この点も同じく中間言語にコンパイルされるJavaと似ていますね。

マネージコードは直接実行できないため、.NET Framework上でJIT(Just-In-Time)コンパイルされながら、ネイティブコードに変換されて実行されます。
この仕組みのお陰で、複数のプラットフォームで同一のバイナリが動作するわけです。

とはいえ、まったくネイティブコードが使えないというわけではなく、「P/Invoke(プラットフォーム呼び出し)」という.NET Frameworkの仕組みにより、ネイティブコードのDLL(動的ライブラリ)から関数を呼び出すことができます。

この方法を使えば、Win32 APIも問題なく呼び出せます。
ただし、ネイティブコードを使う場合には、プラットフォーム間の互換性に注意する必要があります。

WindowsだけじゃないC#の世界

長らくC#はWindows以外の環境をターゲットとしてきませんでしたが、現在ではWindows・Mac・Linux・Android・iOS・Windows Phone・XBOXなど、幅広いプラットフォームに対応する言語になっています。

これを実現しているのは
「Xamarin」と「Unity」という2つのフレームワーク(開発ツール)の力が大きいです。
どちらも無料で利用でき、プラットフォームの幅を広げてくれます。

使い分けとしては、
一般的なアプリを開発する場合はXamarin、
ゲームなどの高度な2D/3Dグラフィックを必要とする場合はUnityを使う
といった具合です。

両者は開発方法がまったく異なっていますので、用途に合わせて最適な開発ツールを使いましょう。

強力な統合開発環境Visual Studio

私がC#を使う一番の理由は、「Visual Studio」という強力な統合開発環境があるからです。
C#と同じくマイクロソフトが開発するVisual StudioはC#と密接に連携しており、インテリセンス(コード補完)やリファクタ、デバッグなどで生産性を飛躍的に高めてくれます。

C#と共にバージョンアップしていくため、最新のC#の言語仕様に対応してくれます。
現在の最新パージョンは「Visual Studio 2017」で、定期的にアップデートが行われています。
一部条件のもと、誰でも無償で使えますので、ぜひともインストールしてみましょう。

まとめ

C#はマイクロソフトが直接開発しているため、Windowsとの相性がよく、Windowsをターゲットとする開発に最適です。
もちろん、ウェブサービスやスマホアプリなど、Windows以外を対象とする開発でも力を発揮します。
マルチプラットフォームであることを活かして、いろいろなアプリを開発してみましょう。

あなたはC#でどんなものを作りたいですか?

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る