C#
読み:スィーシャープ
外語:C#

 C++をベースとした、独自のプログラミング言語の一つ。
目次

言語概要

名称
 C++は、Cに++(インクリメント)することで、Cより一歩進んだCを意味した。
 C#は、この+を縦に並べたものであるが、音符のシャープは「半音上げる」意味があり、やはり++と同様に一歩進んだ状態を表わしている。
 なお、公式には、♯(U+266F)ではなく、#(U+0023)が使われている。

仕様

バージョン
 次のように分類される。
 ISO規格は次のものがある。

C/C++との差異
 C/C++に似ているが互換性はなく、Delphiを取り込んでいることから機能面や構文はDelphiやJavaに近い。

C# 2.0からの新機能

C# 3.0からの新機能

C# 4.0からの新機能

C# 5.0からの新機能

C# 6.0からの新機能

特徴

Javaの対抗
 .NET Framework上の仮想計算機(VM)であるCLR(Common Language Runtime)で動作するもので、Javaの対抗言語であり、Javaの機能の全て、及びそれ以上の機能を搭載する。
 XMLプログラミングを簡易化する機構などを備えており、JavaやVisual Basic、またはそれらと同種の多くを兼ね備えた言語とされる。同社は「C++の開発者をモダンワールドに移行させる」言語としている。

Javaとの差
 言語仕様は、Javaに近い。
 例えば、CにはなくJavaにはあるガベージコレクション機能が採用された。
 またMicrosoft製Javaでは意図的に変数が初期化されなかったが、C#では変数はシステムによって自動的に初期化される等の違いがある。

無節操
 C#が何を目指しているのか、全く分からない。
 バージョンが上がるごとに別の言語となっているようである。

国際標準化
 JavaはSun Microsystemsが開発し、現在はOracleに継承されているデファクトスタンダードで、かつ国際標準化はしない旨がSun Microsystemsより明言されていた。このようなポリシーは、Linux等オープンソース系OSとは適合が悪い。しかしC#は最初から国際標準が目指された。
 言語そのものは国際標準となった。実行環境である共通言語基盤(CLI)の基本的な仕様も国際標準として公開されている。
 ただし、CLIを基盤とした公式の実装である.NET Frameworkの全機能は公開されておらず、またWindows版以外にはない。このため、普通に.NET用に作られたアプリケーションは、公式にはWindows以外では動作できない。実行環境については、オープンソースでMonoなどの互換実装が開発されている。

再検索