C#(シーシャープ)は、Microsoftが開発したモダンで強力なプログラミング言語です。2002年に登場して以来、数多くのバージョンアップが行われ、機能の追加や構文の洗練が続いています。この記事では、C#の各バージョンの概要や主な機能追加、開発者にとってのメリットについて丁寧に解説します。これからC#を学ぼうとしている人にも、最新バージョンを使いこなしたい上級者にも役立つ内容となっています。ぜひ最後までご覧ください。
C#は、Microsoftが.NETプラットフォーム向けに開発した、オブジェクト指向のプログラミング言語です。Javaに似た構文を持ちながらも、WindowsアプリケーションやWebアプリ、ゲーム開発など幅広い分野に対応できる柔軟性があります。
初期のC#はVisual Studioとともに.NET Frameworkに統合されていましたが、現在では.NET Coreや.NET 5以降の「.NET(統一版)」でも活用されており、WindowsだけでなくLinuxやmacOSでも動作するクロスプラットフォーム言語となりました。
以下は、主要なC#バージョンとリリース年の概要です。
バージョン | リリース年 | 主な変更点 |
---|---|---|
1.0 | 2002年 | 初期バージョン、.NET Framework 1.0 |
2.0 | 2005年 | ジェネリクス、匿名メソッドなど |
3.0 | 2007年 | LINQ、拡張メソッド、ラムダ式 |
4.0 | 2010年 | dynamic型、名前付き引数 |
5.0 | 2012年 | async/awaitの導入 |
6.0 | 2015年 | 式ボディ関数、null条件演算子 |
7.0〜7.3 | 2017〜2018年 | タプル、パターンマッチング |
8.0 | 2019年 | nullable reference types、switch式 |
9.0 | 2020年 | record型、init-onlyプロパティ |
10.0 | 2021年 | グローバルusing、ファイルスコープ名前空間 |
11.0 | 2022年 | raw string literals、list patterns |
12.0 | 2023年 | primary constructor、default lambda parameters |
このように、C#はほぼ毎年のように新機能を追加し続けており、モダンな開発環境に適した言語であり続けています。
C# 2.0では、ジェネリクスが導入され、型安全性と再利用性が大きく向上しました。また、匿名メソッドやNullable型も登場し、より柔軟なコードが書けるようになりました。
List<int> numbers = new List<int>();
このように、特定の型を指定してコレクションを扱えるようになったのが大きな進化です。
データベースやコレクションをより直感的に扱えるLINQ(Language Integrated Query)と、関数を簡潔に記述できるラムダ式が導入されたのが3.0です。
var evenNumbers = numbers.Where(n => n % 2 == 0);
また、拡張メソッドにより、既存のクラスに新たな機能を追加することも可能になりました。
async
/ await
構文の導入により、非同期処理が簡潔かつ安全に書けるようになりました。これにより、UIのフリーズを防ぐなど、ユーザー体験の向上が実現されています。
public async Task<string> GetDataAsync()
{
return await httpClient.GetStringAsync("https://example.com");
}
record型はイミュータブルなデータ構造を簡単に定義でき、主にDTO(データ転送オブジェクト)に適しています。
public record Person(string Name, int Age);
比較やコピーも簡単にでき、機能の多さから注目を集めました。
開発の初期設定をよりシンプルにするため、global using
とファイルスコープ名前空間が導入され、プロジェクトの整理がしやすくなりました。
global using System.Text;
namespace MyApp;
class Program { }
2023年にリリースされたC# 12では、primary constructorなどの機能が追加され、クラスでもコンストラクターを簡潔に定義可能となりました。
class Person(string name)
{
public string Name => name;
}
C#のバージョンは、使う.NETのバージョンと密接に関連しています。Visual Studioや.NET SDKのバージョンにより、使用できるC#バージョンも変わるため、開発環境の整備は重要です。
たとえば、.NET 6ではC# 10が、.NET 7ではC# 11がデフォルトになります。
C#は、単なる「古いWindows向けの言語」ではなく、最新の開発スタイルに常に対応して進化し続ける言語です。バージョンごとの特徴を押さえることで、より読みやすく、保守しやすいコードを書くことができるようになります。
これからC#を学ぶ方も、すでに使っている方も、定期的にバージョンの変化をチェックして、新機能を取り入れてみてください。プログラミングがもっと楽しく、もっと生産的になるはずです。