C# は、タイプ セーフで洗練されたオブジェクト指向言語です。C# を使用すると、.NET Framework で稼動する、安全で信頼性の高いさまざまなアプリケーションを構築できます。C# を使用すると、従来の Windows クライアント アプリケーション、XML Web サービス、分散コンポーネント、クライアント/サーバー アプリケーション、データベース アプリケーションなど、さまざまなアプリケーションを作成できます。Microsoft Visual C# 2005 には、高度なコード エディタ、便利なユーザー インターフェイスのデザイナ、統合デバッガなど多数のツールが用意されています。Version 2.0 の C# 言語と .NET Framework を基にしてアプリケーションを迅速に開発できます。
メモ : |
|---|
| Visual C# のドキュメントは、基本的なプログラミング概念を理解している方を対象に書かれています。初心者である場合、Web で入手できる Visual C# Express Edition が参考になります。C# には参考資料として優れた書籍や Web リソースがいくつかあるため、実践的なプログラミング スキルを身に付けるときに利用することもできます。 |
C# 言語
C# の構文は表現力が豊かですが、キーワード数は 90 未満です。単純ですぐに覚えることができます。C、C++、または Java に慣れていれば、C# の中かっこ ({}) 構文をすぐに理解できます。これらの言語のいずれかを理解していると、一般に、C# での開発を短期間で始めることができます。C# 構文では、C++ の複雑な部分が数多く簡略化されているだけでなく、null 許容値型、列挙体、デリゲート、匿名メソッド、ダイレクト メモリ アクセスなど、Java にはない強力な機能が実装されました。また C# は、ジェネリック メソッドおよびジェネリック型をサポートしているため、タイプ セーフおよびパフォーマンスが向上し、反復子もサポートしているため、クライアント コードで簡単に使用できるカスタムの反復動作をコレクション クラスの実装側が定義できます。
C# は、オブジェクト指向言語として、カプセル化、継承、およびポリモーフィズムの概念をサポートしています。アプリケーションのエントリ ポイントである Main メソッドなど、変数とメソッドのすべてがクラス定義内でカプセル化されています。親クラスから直接継承できるクラスは 1 つのみですが、クラスで実装できるインターフェイスの数は任意です。親クラスの仮想メソッドをオーバーライドする場合、誤って再定義しないように、override キーワードを指定する必要があります。C# の構造体はコンパクトなクラスのようなものです。インターフェイスを実装できるスタック割り当て型ですが、継承はサポートされていません。
C# には、基本的なオブジェクト指向の原則とは別に、次のように革新的な言語構成要素が用意されているため、ソフトウェア コンポーネントの開発が容易になります。
-
メソッドのシグネチャをカプセル化するデリゲート。タイプ セーフなイベント通知を実行できます。
-
プロパティ。プライベート メンバ変数へのアクセサとして機能します。
-
属性。実行時に型に関する宣言のメタデータを提供します。
-
インライン XML ドキュメントのコメント。
COM オブジェクトやネイティブの Win32 DLL など、他の Windows ソフトウェアと対話するには、C# で "相互運用" というプロセスを使用します。C# プログラムで相互運用機能を使用すると、ネイティブの C++ アプリケーションで実行できる機能をすべて実行できます。さらに、ダイレクト メモリ アクセスが必須の場合でも、ポインタと "unsafe" コードの概念がサポートされます。
C# のビルド処理は、C や C++ よりも単純で Java よりも柔軟です。ヘッダー ファイルは分かれていません。また、メソッドや型を特定の順序で宣言する必要はありません。C# のソース ファイルでは、クラス、構造体、インターフェイス、およびイベントをいくつでも定義できます。
その他に、C# の参照ドキュメントを紹介します。
.NET Framework のプラットフォーム アーキテクチャ
C# プログラムは、.NET Framework で実行されます。これは、共通言語ランタイム (CLR) と呼ばれる仮想実行システムや統合的なクラス ライブラリを備えた Windows の統合コンポーネントです。CLR は、共通言語基盤 (CLI) をサポートする Microsoft のシステムです。CLI は、複数の言語やライブラリをシームレスに連携する実行環境と開発環境を構築するための、基本的な国際規格です。
C# で記述したソース コードは、CLI 仕様に準拠する中間言語 (IL) にコンパイルされます。IL コードは、ビットマップや文字列などのリソースと共に、アセンブリと呼ばれる実行可能ファイルのあるディスクに保存されます。アセンブリの拡張子は、一般的に .exe か .dll です。アセンブリに含まれるマニフェストには、アセンブリの種類、バージョン、カルチャ、およびセキュリティ要件に関する情報が規定されています。
C# プログラムを実行すると、アセンブリが CLR に読み込まれ、マニフェストの情報に基づいてさまざまな処理が実行されます。このとき、セキュリティ要件に一致すると、CLR で Just-In-Time (JIT) のコンパイルが実行され、IL コードはネイティブのマシン語命令に変換されます。CLR には、自動的なガベージ コレクション、例外処理、およびリソース管理に関するサービスも用意されています。CLR で実行されるコードは、"マネージ コード" と呼ばれることがあります。反対に、特定のシステムを対象にしたネイティブのマシン語にコンパイルされたコードは、"アンマネージ コード" と呼ばれることがあります。C# ソース コード ファイル、基本クラス ライブラリ、アセンブリ、および CLR について、コンパイル時間と実行時間の関係を次の図に示します。
言語の相互運用性は、.NET Framework の主要機能です。C# コンパイラで生成された IL コードは共通型の仕様 (CTS: Common Type Specification) に準拠しています。そのため、C# の IL コードは、Visual Basic、Visual C++、Visual J# を始めとした 20 を超える CTS 準拠言語で生成されたコードと相互運用性があります。1 つのアセンブリには、異なる .NET 言語で記述されたモジュールを複数含めることができます。また、同じ言語で記述されている場合と同様に、型を参照することもできます。
.NET Framework には、実行時のサービス以外にも、4,000 クラスを超える多数のライブラリが用意されています。このライブラリは、ファイルの入出力、XML 解析のための文字列操作、Windows フォーム コントロールなど、役に立つさまざまな機能を備えた名前空間に構成されています。C# アプリケーションでは、一般に、.NET Framework クラス ライブラリを広範囲に使用して、一般的な "配管工事" のような作業を処理しています。
.NET Framework プラットフォームの詳細については、「.NET Framework の概要」を参照してください。
参照