プログラミング言語

C# しーしゃーぷ

.NETオブジェクト指向MicrosoftVisual StudioTypeSafeLINQ
C#について教えて

簡単に言うとこんな感じ!

C#(シーシャープ)は、Microsoftが作ったプログラミング言語だよ!Windowsアプリや業務システム、ゲーム(Unityとか!)を作るのに広く使われてるんだ。JavaやC++のいいとこ取りをして、書きやすさと速さを両立した「モダンな言語」ってこと!


C#とは

C#(シーシャープ)は、Microsoftが2000年に発表したオブジェクト指向プログラミング言語です。Javaに強く影響を受けつつ、C・C++の表現力も取り込んで設計されており、現在はクロスプラットフォーム対応.NET(ドットネット)ランタイム上で動作します。Windowsアプリ・Webアプリ・業務システム・ゲーム開発など幅広い用途で使われる、エンタープライズ(企業向け)開発の定番言語の一つです。

型安全性変数の型を厳密に管理する仕組み)が高く、大規模なチーム開発でも品質を保ちやすいのが特徴です。また、Visual Studio(ビジュアルスタジオ)という強力な統合開発環境(IDE)と組み合わせることで、コードの自動補完やデバッグ(バグ探し)が非常にやりやすく、開発生産性が高い言語として企業システム開発で広く採用されています。

2020年代には、オープンソース化された.NET 5/6/7/8の登場により、WindowsだけでなくLinux・macOS上でも動作するようになりました。クラウドサービス(Azure)との親和性も高く、モダンな開発においても存在感を増しています。


C#の主な特徴・構造

特徴内容
オブジェクト指向クラス継承ポリモーフィズムなど、OOP(オブジェクト指向プログラミング)を完全サポート
型安全性変数の型が厳密に管理され、実行前にバグを発見しやすい
LINQデータベースのSQL風クエリをコード内に直接書ける機能(Language-Integrated Query)
非同期処理async/await 構文で、重い処理を待ちながら他の作業もできる書き方が簡単に実現できる
ガベージコレクション使い終わったメモリを自動的に回収する仕組みで、メモリ管理の手間が減る
クロスプラットフォーム.NET 5以降、Windows・Linux・macOS で動作可能

覚え方:「C#」の「#」は”ドを4個重ねた形”

楽譜の「シャープ(♯)」記号に由来していて、「C言語を一段階上げた(シャープにした)言語」というニュアンスが込められています。「C++のさらに上」と覚えておくと、位置付けがイメージしやすいです。

C#で作れるもの・主な用途

用途代表例
Windowsデスクトップアプリ社内業務ツール、管理画面など
Webアプリ・APIASP.NET Core を使ったWebサービス
ゲーム開発Unity(世界シェアNo.1のゲームエンジン)の公式言語
クラウドサービスAzure Functionsなど、サーバーレス処理
モバイルアプリ.NET MAUIによるiOS/Androidアプリ

歴史と背景

  • 1999年 — Microsoftのアンダース・ヘルスバーグ(Turbo Pascal・Delphiの設計者)が開発を開始
  • 2000年 — PDC(Professional Developers Conference)でC# 1.0と.NET Frameworkを発表
  • 2002年 — Visual Studio .NET 2002とともに正式リリース。Javaに対抗する企業向け言語として登場
  • 2005年 — C# 2.0でジェネリクス(汎用的な型定義)を導入。実用性が大幅向上
  • 2007年 — C# 3.0でLINQを導入。データ処理の記述が革新的に簡潔になる
  • 2012年 — C# 5.0でasync/awaitを導入。非同期処理の書き方がシンプルに
  • 2016年 — .NETをオープンソース化、Linux・macOS対応の「.NET Core」登場
  • 2020年 — .NET 5で「.NET Framework」と「.NET Core」を統合。クロスプラットフォームが標準に
  • 2024年 — C# 13・.NET 9がリリース。継続的にモダンな言語機能を追加中

他の言語との比較

C#は同じ「オブジェクト指向・静的型付け」ファミリーのJavaやC++と比較されることが多いです。発注・選定する立場では、どの言語が使われているかよりも「何が作れるか・誰が書けるか」が重要です。

比較項目C#JavaPython
主な用途Windowsアプリ・ゲーム・業務系Web業務系Web・AndroidアプリAI/データ分析・スクリプト
型の扱い静的型付け(厳密)静的型付け(厳密)動的型付け(柔軟)
学習コスト中程度中程度低め
実行速度速い速いやや遅い
Microsoftとの相性◎ 最高○ 良い○ 良い
ゲーム開発◎(Unity)
エンジニアの採用難易度やや難標準比較的易
C# と .NET の関係(実行の仕組み) あなたのC#コード (ソースコード) コンパイラ (C# → IL中間言語へ変換) IL(中間言語) (.dllファイル) .NET ランタイム(CLR) ILをその場でネイティブコードに変換して実行(JIT) Windows で動く Linux で動く macOS で動く CLR = Common Language Runtime(共通言語ランタイム) JIT = Just-In-Time コンパイル

関連する規格・RFC

規格番号内容
ECMA-334C# 言語仕様の国際標準(ECMA International策定)
ISO/IEC 23270C# 言語仕様のISO規格(ECMA-334と対応)

関連用語

  • ./060-dotnet.md — C#が動作するMicrosoftのアプリケーション実行基盤(ランタイム)
  • ./061-visual-studio.md — C#開発に使われるMicrosoftの統合開発環境(IDE)
  • ./062-object-oriented.md — C#が採用している設計思想「オブジェクト指向プログラミング」
  • ./063-java.md — C#と設計思想・用途が近い代表的なプログラミング言語
  • ./064-unity.md — C#を公式スクリプト言語として採用する世界的ゲームエンジン
  • ./066-static-typing.md — C#が採用する「変数の型を実行前に決める」型システムの仕組み
  • ./067-azure.md — C#・.NETと高い親和性を持つMicrosoftのクラウドサービス
  • ./068-asp-net.md — C#でWebアプリ・APIを開発するためのフレームワーク