C#プログラムの実行については、プログラム実行環境「.NET Framework」が必要です。
「.NET Framework」とは、OSとアプリケーションの間に位置するもので、プログラム実行環境です。主要機能として「共通言語ランタイム(CLR)」と「クラスライブラリ」があります。
プログラム作成後にコンパイルを行うと「中間言語」という形式で出力されます。「.NET Framework」が中間言語を読み込み、プログラムを解釈することで実行されます。
「C#でプログラムを作成する」=「.NET Frameworkで動作するプログラムを作成する」となります。
共通言語ランタイムは「中間言語を.NET Frameworkで動作する機械語に変換する処理」を実行します。
クラスライブラリには、さまざまな基本的な処理が含まれている共通ライブラリ(部品)が格納されています。
コーディング時に、クラスライブラリを活用することで、1からプログラミングをする必要がなくなり、効率的に開発できます。
マシン上で直接実行する他言語と比較した場合、C#は共通言語ランタイムを通す手順が増えることになりますが、「1つのプログラムをさまざまなOS(環境)で動作させることができる」というメリットがあります。動作させるためには「.NET Framework環境」が用意されている必要があります。
これは、JavaのVM(仮想マシン)と同様に、「OS」「プロセッサアーキテクチャ」「大規模ライブラリ」などの環境面に依存しない実行形態です。
この仕組みによりプログラム互換性を高めることができ、実行端末ごとにプログラムを対応させる作業を大幅に減少できます。
.NET Frameworkを基盤とすることで、C#プログラムは、他の.NET系言語(Visual Basic/Visual C++など)と相互連携できます。
他言語で記述されたクラスを継承でき、その逆も可能です。
C#には、堅牢で永続的なアプリケーション構築を支援するさまざまな機能が用意されています。
次のようなタイプセーフのための制限があります。
・初期化されていない変数の読み取り
・範囲を超える配列のインデックス付け
・未確認の型キャスト実行 など
例外処理機構として、「エラー検出」と「エラー状態からの回復のための構造化された拡張可能なアプローチ」を提供します。
C#では、ガベージコレクション機構により「使用されていないオブジェクトによって占有されている到達不可能なメモリ」を自動的に解放します。プログラマーを「メモリ解放に関する責任」から解放し、メモリリークの発生を防げます。
明示的な処理としてメモリを解放する方法は存在せず、参照されなくなったメモリはガベージコレクタによって自動的に解放されます。
C#の設計では「ライブラリのバージョン管理」に大きな重点が置かれています。
他の多くのプログラミング言語は、言語仕様ベースでライブラリバージョン管理についてさほど考慮されていません。それらの言語で書かれたプログラムは、依存するライブラリの新しいバージョンが導入された場合など、想定を上回るメンテナンス作業が必要となるケースがあります。
C#の場合、C#のプログラムとライブラリが互換性を保ちながら時間とともに進化できるように設計されています。
・virtual修飾子
・override修飾子
・メソッドのオーバーロードの解決規則
・明示的なインターフェースメンバー宣言のサポート など
Visual Studioの新バージョン「Visual Studio 15(Preview 4)」が8月22日にリリースされた。 「Visual Studio 15」と「C# 7」について解説。 【C#とは】 http://www.ossnews.jp/oss_info/C_sharp 【解説ポイント】 ・新しいインストーラーでのインストール ・IDEにおける機能改善点 ・C...
OSS×Cloud ACCESS RANKING