C# 【C Sharp】

概要

C#(C Sharp)とは、米マイクロソフト(Microsoft)社が開発したプログラミング言語の一つで、C言語/C++言語をもとに同社の.NET Framework向けのソフトウェア開発に適した仕様に調整・改良したもの。2002年に最初のバージョンが公開された。

C/C++の構文や記法、ステートメントなどを踏襲しているが、オブジェクト指向を全面的に取り込みメモリ管理に実行環境によるガーベジコレクションを用いるなど、同じC++から派生したJavaと共通する特徴を持ち、よく比較される。

数年の一度新しいバージョンが公開されており、ジェネリクスクロージャ(匿名デリゲート)、ラムダ式クエリLINQ)、匿名型、オプション引数・名前付き引数非同期処理async/await構文)、新機能の取り込みに積極的である。

豊富な組み込みデータ型を持つ強い型付けを採用しており、変数の宣言時にデータ型を指定する静的型付けが原則だが、varキーワードによる型推論の利用や動的型付けも追加された。

とり得るを並べた列挙型enum)、Cの構造体に似た値型(struct)、の組を定義するタプルtuple)など豊富なデータ表現をサポートしている。C/C++で特徴的だった真偽値を整数値と対応付ける(0が偽、0以外が真)方式は廃止され、専用のブーリアン型bool)を用いるようになった。

C/C++との主な違い

オブジェクト配列などのメモリ管理は処理系が自動的にうようになっているため、C/C++のようにメモリアドレスを変数値として扱うポインタの仕組みが必要になることはほとんどないが、ハードウェアに近い低レベルの制御が必要な場合や、外部のネイティブコードを呼び出す場合などに備え、ポインタの仕様自体は残されている。ポインタを使用するブロックはunsafeキーワードにより他と区別されるようになっている。

オブジェクトが一部の処理を別のオブジェクト実行させるデリゲートdelegate)と呼ばれる機構を備えており、Cにおける関数ポインタのように間接的なメソッド呼び出しをうことができる。

古い手続き型の仕様にオブジェクト指向を追加したC++とは異なり、言語仕様の根本にクラスベースのオブジェクト指向を採用しているため、クラス定義の外にグローバル変数などを定義することはできない。Javaと同じように、混乱の原因になりがちだった多重継承サポートせず、複数の基底クラスを参照する場合にはインターフェースinterface)を用いる。

コンパイルの前にソースコードを改変するプリプロセッサの仕組みも排除されたが、一部のプリプロセッサ構文(#で始まる特殊な記法)はプリプロセッサディレクティブとして定義されており、コンパイラやコードエディタに指示を与えることができる。

開発・実行環境

標準の開発環境は同社が統合開発環境の「Visual Studio」の一部として「Visual C#」として提供しており、開発したプログラム.NET環境に共通する中間言語CILCommon Intermediate Language)によるバイナリコードに変換される。

このコードコンピュータで直に起動可能ではなく、.NET Frameworkなどの実行環境に含まれる仮想マシンによって解釈・実行される。これにより、.NET共通の豊富なライブラリの使用や、ガーベジコレクションJITコンパイラによる高速化などの恩恵を受けることができる。

C#自体の仕様は標準化団体のEcma Internationalに提出され規格化されており、同社と無関係に処理系実装することもできる。オープンソース.NET互換環境を開発するMonoプロジェクトによるC#コンパイラなどが存在する。仕様上は.NET環境向けではなくコンピュータが直に実行できるネイティブコードを生成することも可能だが、そのような用途で用いられることはほとんどない。

名称

C#と表記し “C Sharp” (シー・シャープ)と読むのが正式名称だが、表記の「#」はナンバーサインnumber sign)であり、音楽記号の「♯」ではない(傾いているのが縦棒か横棒かが異なる)。

C言語では整数値に1を加えるインクリメント演算子を「++」と表記するため、C++言語の名称は「Cを改善した」という一種の言葉遊びになっているが、C#初期の開発を主導したアンダース・ヘイルスバーグ(Anders Hejlsberg)氏によれば、「#」は「++」を縦に並べて+が井桁状になっているという含意があり、「C++を改善した」という意味が込められているという。

(2018.10.16更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる