C++は、Cに++(インクリメント)することで、Cより一歩進んだCを意味した。
C♯は、この+を縦に並べたものである。
次のように分類される。
ISO規格は次のものがある。
Microsoft .NET上の仮想計算機(VM)であるCLR(Common Language Runtime)で動作するもので、Javaの対抗言語であり、Javaの機能の全て、及びそれ以上の機能を搭載する。
XMLプログラミングを簡易化する機構などを備えており、JavaやVisual Basic、またはそれらと同種の多くを兼ね備えた言語とされる。同社は「C++の開発者をモダンワールドに移行させる」言語としている。
例えば、CにはなくJavaにはあるガベージコレクション機能が採用された。
またMicrosoft製Javaでは意図的に変数が初期化されなかったが、C♯では変数はシステムによって自動的に初期化される等の違いがある。
JavaはSun Microsystemsのデファクトスタンダードであり、かつ国際標準化はしない旨がSun Microsystemsより明言されている。このようなポリシーは、Linux等オープンソース系OSとは適合が悪い。しかしC♯は最初から国際標準が目指された。
まず欧州コンピュータ製造工業会(ECMA)へ提出し、2001(平成13)年12月に標準化された。
そして2002(平成14)年10月には遂にISO標準となる見通しが発表され、2003(平成15)年にISO/IEC 23271としてISO標準化された。
そして2005(平成17)年3月22日、JIS X 3015プログラム言語C♯として日本でもJISとして規格化された。
かくして、言語そのものは国際標準となったが、その実行環境はWindows版以外は存在せず、Javaとは違ってWindows以外では動作できない。