#C#
マイクロソフトが開発したプログラミング言語。
書式がC++に近い書式。.NET Framework上で動作する
C#でやれる事。
ウェブサービスの構築からスマートフォンアプリやゲーム開発まで幅広く活用
採用例:
・マイクロソフトの検索エンジンBing
・ゲームの開発環境のUnity
C#の特徴
オブジェクト指向型のプログラミング言語
.NET Framework を活用できる高品質なプログラムの作成が容易
**「オブジェクト指向」**を採用している。
オブジェクト指向
保守性、汎用性、拡張性、独立性を実現するためのプログラミング言語
・保守性
⇒既にあるコードの整理が容易になる
⇒必要なデータ・振る舞いのみを提供できる。
(振る舞い:メソッドを使って、定義する。)
・汎用性
⇒既に記述されたコードを修正すること無く再利用が容易。
・拡張性
⇒既に記述されたコードを修正せずに上書き、書き足すことが容易。
・独立性
⇒オブジェクト同士がお互いに疎遠な関係になることで保守・汎用化が容易になる(簡単)
⇒修正や追加を加えた際に他のオブジェクトへの影響を最小限に抑えることが出来る。
オブジェクト指向が出来るまで
・機械語(マシン語)
⇒コンピュータは機械語しか理解できない。昔は人間が機械語でプログラムを記述。
⇒バイナリ(数値)の羅列で人には理解しにくい。
⇒例:0101010100やA10010、8B160210など
・アセンブリ言語
⇒組立(用)言語の意味を持つ。
⇒アセンブリ言語で書いたプログラムを機械語プログラムに変換することをアセンブルするという。
⇒アセンブルするプログラムをアセンブラという。
・高水準言語
⇒構造体/レコード、クラス、集合といった高水準な抽象データ型
⇒抽象データ型・・・データ型の構造とそれを直接操作する手法として定義されたデータ型。
・構造化プログラミング
⇒コンピュータプログラムの開発や理解、修正を円滑に行えるようプログラムを整理された構造の組み合わせによって構成すること。
⇒基本的に、順接、反復、分岐の三つの制御構造による処理の流れを記述する。
⇒・順接・・・ステートメントを順々に処理
⇒・選択・・・条件式の結果に従い次に実行する文(コード)またはブロック(文を纏めた物)を選択してフロー(処理の流れ)分岐する
⇒・反復・・・特定の条件の間、ステートメントまたはブロック内を繰り返す。
⇒・サブルーチン・・・呼び出した次のステートメントに復帰することを前提にして対象ブロックの起点にジャンプする。
・オブジェクト指向
⇒グローバル変数や再利用の問題に対応する為に、「クラス」・「ポリモーフィズム」・「継承」が追加された。
⇒クラス・・・オブジェクトを生成するための設計図のひな型に沿うとするもの
⇒ポリモーフィズム(多様性・多態性・多相性)・・・定数、変数、式、オブジェクト、関数、メソッドなどについて
複数の方に属す売ることを許すという性質を表すもの。
⇒継承(または拡張)・・・単純なクラスを基にもっと複雑なクラスを形作る事。
##参考資料
C#によるアプリケーション開発入門
Wikipedia