C#は、Microsoftが開発したプログラミング言語であり、オブジェクト指向プログラミングに適しています。初心者でも簡単に学べる構文と、高度な機能を備えたフレームワークが特徴です。
本記事では、C#の基礎から応用までをわかりやすく解説し、サンプルコードも交えて紹介します。
C#とは
C#(シーシャープ)は、マイクロソフトが開発したプログラミング言語の一つです。
1999年に発表され、2000年に正式版がリリースされました。C#は、JavaやC++などのプログラミング言語から影響を受けており、オブジェクト指向プログラミングを中心とした構文が特徴的です。
C#は、WindowsアプリケーションやWebアプリケーションなどの開発に使用されます。
また、Unityというゲームエンジンでも使用されています。C#は.NET Frameworkというフレームワーク上で動作するため、Windows以外のOSでも動作することができます。
次のセクションでは、C#の基本的な構文について解説します。
C#の特徴
C#は、マイクロソフトが開発したオブジェクト指向プログラミング言語です。以下に、C#の主な特徴を紹介します。
1. オブジェクト指向プログラミング言語
C#は、オブジェクト指向プログラミング言語であり、クラスやオブジェクトを使ってプログラムを構築することができます。これにより、再利用性が高く保守性の高いコードを書くことができます。
2. 型安全性
C#は、静的型付け言語であり、変数やメソッドの型を明示的に宣言する必要があります。このため、コンパイル時に型エラーを検出することができるため、安全性の高いコードを書くことができます。
3. プログラムの自動メモリ管理
C#では、自動メモリ管理機能(ガベージコレクション)が備わっています。これにより、開発者は手動でメモリ管理を行う必要がなくなります。また、不要なメモリ領域を解放するための手間も省けるため、開発効率も向上します。
4. 多彩な開発環境
C#はマイクロソフト社製品であるVisual Studioという統合開発環境(IDE)上で開発されることが多いです。
Visual Studioにはデバッグ支援機能やGUIビルダーなど多彩な機能が備わっており、効率的かつ快適な開発環境を提供しています。
以上がC#の主な特徴です。これらの特徴からも分かるように、C#は初心者でも扱いやすく学びやすい言語です。
C#の歴史
C#は、マイクロソフトが開発したプログラミング言語です。
1999年に開発が始まり、2000年に最初のバージョンがリリースされました。当初はWindowsアプリケーションの開発に特化していましたが、現在ではWebアプリケーションやモバイルアプリケーションなど、様々な分野で利用されています。
C#の名前は、「シーシャープ(C sharp)」と読みます。これは、音楽記号の「♯(シャープ)」を表しており、Javaという言語に対する強い競合意識から名付けられたと言われています。
C#は.NET Frameworkと密接に関連しており、Windows上で動作するアプリケーションを開発する際に欠かせない言語です。
また、最近では.NET Coreというクロスプラットフォームのフレームワークも登場し、LinuxやmacOSでもC#を利用したアプリケーション開発が可能になっています。
C#の用途
C#は、Microsoftが開発したオブジェクト指向プログラミング言語であり、WindowsアプリケーションやWebアプリケーションの開発に使用されます。
具体的には、以下のような用途があります。
Windowsアプリケーションの開発

C#は、WindowsフォームアプリケーションやWPF(Windows Presentation Foundation)を使用したデスクトップアプリケーションの開発に適しています。
これらのアプリケーションは、GUI(Graphical User Interface)を持ち、ユーザーと対話することができます。
Webアプリケーションの開発
ASP.NETというWebフレームワークを使用することで、C#を使ったWebアプリケーションの開発が可能です。
ASP.NETは、サーバーサイドで動作するWebアプリケーションを構築するためのフレームワークであり、C#を使ってビジネスロジックやデータ処理などを実装することができます。
ゲーム開発
Unityという3Dゲームエンジンでは、C#を使ってゲームのロジック部分を実装することができます。
また、XNA Frameworkというマイクロソフト製のフレームワークもあります。
XNA Frameworkは、2D/3Dグラフィックスや音声処理などに特化したフレームワークであり、C#を使って簡単に高品質なゲームを作ることができます。
Unityというゲームエンジンでも、C#を用いて高度なゲームプログラミングが可能です。
これら以外にも様々な場面で利用されており、汎用性が高い言語です。
C#の基本構文
C#の基本構文について解説します。
変数
変数とは、データを格納するための箱のようなものです。C#では、変数を宣言する際に型を指定する必要があります。例えば、整数型の変数を宣言する場合は以下のように記述します。
int num = 10;
また、文字列型の変数を宣言する場合は以下のように記述します。
string str = "Hello, World!";
演算子
演算子とは、計算や比較などを行うための記号です。C#では、代表的な演算子として以下があります。
- 算術演算子(+、-、*、/)
- 比較演算子(==、!=、<、>)
- 論理演算子(&&、||)
例えば、2 + 3
を計算した結果を出力する場合は以下のように記述します。
int result = 2 + 3;
Console.WriteLine(result); // 出力結果:5

制御構文
制御構文とは、プログラムの流れを制御するための構文です。C#では、代表的な制御構文として以下があります。
- if文
- switch文
- for文
- foreach文
- while文
- do-while文
例えば、「1から10までの数字を順番に出力する」プログラムを作成する場合は以下のように記述します。
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
関数
関数とは、一連の処理をまとめて名前付きで呼び出すことができるものです。
C#では、関数を定義する際に戻り値や引数なども指定することができます。例えば、「2つの整数値を足し合わせた結果を返す関数」を作成する場合は以下のように記述します。
int Add(int a, int b)
{
return a + b;
}
// 使用方法:
int result = Add(2, 3);
Console.WriteLine(result); // 出力結果:5

クラス
クラスとは、「オブジェクト」と呼ばれるものを生成するために使用される構文です。
C#では、class
というキーワードでクラス定義が行われます。例えば、「人間」というオブジェクト用のクラス定義を作成する場合は以下のように記述します。
using System;
class Human
{
public string Name { get; set; }
public int Age { get; set; }
public void SayHello()
{
Console.WriteLine("こんにちは!");
}
}
public class Hello{
public static void Main(){
Human human = new Human();
human.Name = "山田太郎";
human.Age = 20;
human.SayHello(); // 出力結果:こんにちは!
}
}

インターフェース
インターフェースとは、「実装しなければならないメソッド」だけが定義された抽象的な設計図です。
C#では、interface
というキーワードでインターフェース定義が行われます。例えば、「飛べる生物」というインターフェース定義し、そのインターフェースを使用する場合は以下のように記述します。
interface IFlyable
{
void Fly();
}
class Bird : IFlyable
{
public void Fly()
{
Console.WriteLine("鳥が飛んでいます");
}
}
// 使用方法:
Bird bird = new Bird();
bird.Fly(); // 出力結果:鳥が飛んでいます。

例外処理
例外処理とは、「予期しないエラー」や「異常状況」が発生した際にプログラムが停止せず続行可能な状態に保つために使用される仕組みです。
C#では、try-catch-finally
というキーワードで例外処理が行われます。
例えば、「0除算エラー」時にメッセージ表示してプログラム続行させる場合は以下のように記述します。
try
{
int x = 0;
int y = 10 / x;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("0除算エラー:" + ex.Message);
}
finally
{
Console.WriteLine("処理完了");
}

C#の開発環境
C#プログラミングを行って、そのプログラムを実行するためには、まず適切な開発環境を用意する必要があります。C#の開発環境としては、主に以下の4つが挙げられます。
Visual Studio

Microsoftが提供する統合開発環境であるVisual Studioは、C#を含む多数のプログラミング言語に対応しています。
Windows向けアプリケーションやWebアプリケーション、モバイルアプリケーションなど、様々な種類のアプリケーションを効率よく開発することができます。
.NET Core

.NET Coreは、オープンソースでクロスプラットフォーム対応のフレームワークです。WindowsだけでなくLinuxやmacOSでも動作します。Visual Studio CodeやVisual Studio for Macといったエディター上で使用することができます。
Xamarin

Xamarinは、iOSやAndroid向けのネイティブアプリケーションをC#で開発するためのフレームワークです。Visual Studio上で使用することができます。
Unity

Unityは、3D/2Dゲーム開発用エンジンです。C#を使ってスクリプトを書くことができます。また、Unity Hubという管理ツールから複数バージョンのUnityをインストール・管理することも可能です。
以上がC#の代表的な開発環境です。自分に合った環境を選んで、効率的にC#学習・開発に取り組みましょう。
C#の応用
C#は、多くの用途に利用される汎用プログラミング言語です。ここでは、C#がどのような応用分野で使われているかを紹介します。
Webアプリケーションの開発
C#は、ASP.NETというWebアプリケーションフレームワークを使用してWebアプリケーションの開発が可能です。ASP.NETは、高速で安全なWebアプリケーションを作成するための機能が豊富に備わっています。
デスクトップアプリケーションの開発
WindowsフォームやWPF(Windows Presentation Foundation)といったGUIフレームワークを使用して、デスクトップアプリケーションを開発することができます。これらのフレームワークは、ビジュアルなインターフェースを簡単に作成することができます。
ゲーム開発
Unityエンジンは、C#言語をサポートしており、3D/2Dゲーム開発に広く利用されています。また、XNA FrameworkもC#言語で書かれており、Xbox 360やWindows Phone向けのゲーム開発・使用されました。
モバイルアプリケーションの開発
Xamarinは、iOSやAndroid向けのネイティブアプリケーションを開発するためのフレームワークです。C#言語を使用してコードを記述し、共通コードを再利用することができます。
人工知能の開発
C#言語は機械学習や人工知能分野でも広く利用されています。Microsoftが提供するML.NETライブラリは、C#言語で機械学習モデルを作成するためのオープンソースライブラリです。
その他
その他にも、C#言語は多岐にわたる分野で活躍しています。例えば、
- Windowsサービスやバックグラウンド処理などのシステム開発
- ExcelやWordなどOffice製品と連携した業務システム開発
- IoT(Internet of Things)デバイス制御
などが挙げられます。