C Sharp
| パラダイム | オブジェクト指向、命令型、関数型、手続き型、ジェネリック、リフレクション、イベント駆動型 |
|---|---|
| 開発 | Microsoft |
| 発表日 | 2000年 |
| ホームページ | https://learn.microsoft.com/ja-jp/dotnet/csharp/ |
C#(シーシャープ)は、Microsoftが開発したオブジェクト指向プログラミング言語であり、.NETイニシアチブの一環として開発された。C++やJavaと文法が似ており、強力な型システムと自動メモリ管理(ガベージコレクション)機能を提供する。
概要
C#はECMA(ECMA-334)およびISO(ISO/IEC 23270)の標準に従う言語である。Microsoftのアンダース・ヘルスバーグ(Anders Hejlsberg)が設計を主導した。初期にはCool(C-like Object Oriented Language)というコードネームで呼ばれていたが、後にC#と命名された。「C#」という名称は音楽の嬰記号(シャープ)に由来しており、C++より一段階高いことを意味している。
特徴
- 完全なオブジェクト指向: C#はすべてがオブジェクトとして扱われる完全なオブジェクト指向言語である。
- 安全性: ポインタの使用を制限し(unsafeブロック内でのみ許容)、厳格なデータ型チェックを通じてプログラムの安定性を高めている。
- 自動メモリ管理: ガベージコレクタを通じて、使用されなくなったメモリを自動的に解放する。
- 相互運用性: 他の.NET言語との相互運用が可能であり、COMオブジェクトとの連携もサポートしている。
- 進化し続ける機能: 継続的なアップデートにより、ジェネリック、ラムダ式、LINQ、非同期プログラミング(async/await)などの現代的なプログラミング機能が追加されている。
例題
以下はC#で作成したHello Worldプログラムの例である。
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
バージョン
| バージョン | 発表年 | .NET バージョン | 主な機能 |
|---|---|---|---|
| 1.0 | 2002年 | .NET Framework 1.0 | マネージドコード, クラス, 構造体, インターフェース, デリゲート |
| 2.0 | 2005年 | .NET Framework 2.0 | ジェネリック, 匿名メソッド, イテレータ, nullable型 |
| 3.0 | 2007年 | .NET Framework 3.5 | ラムダ式, 拡張メソッド, 匿名型, LINQ |
| 4.0 | 2010年 | .NET Framework 4.0 | dynamicキーワード, 名前付き引数, オプション引数 |
| 5.0 | 2012年 | .NET Framework 4.5 | 非同期プログラミング (async/await) |
| 6.0 | 2015年 | .NET Framework 4.6 | 文字列補完, 式形式のメンバー, Null条件演算子 |
| 7.0 | 2017年 | .NET Framework 4.6.2 | タプル, パターンマッチング, ローカル関数 |
| 8.0 | 2019年 | .NET Core 3.0 | Null許容参照型, 非同期ストリーム, デフォルトインターフェースメンバー |
| 9.0 | 2020年 | .NET 5.0 | レコード, トップレベルステートメント |
| 10.0 | 2021年 | .NET 6.0 | グローバルusing, ファイル範囲のネームスペース |
| 11.0 | 2022年 | .NET 7.0 | 未加工文字列リテラル, ジェネリック数学 |
| 12.0 | 2023年 | .NET 8.0 | プライマリコンストラクタ, コレクション式 |