コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
C Sharp
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
2012年11月5日 (月) 15:23時点における
114.49.42.183
(
トーク
)
による版
(
→生い立ち
)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''C#'''(しーしゃーぷ)とは、[[マイクロソフト]]が開発した、どちらかというと[[オブジェクト指向]]寄りだが、[[関数型プログラミング言語]]の要素を取り入れたり、もともとは強い[[静的型付け言語]]であったが、いつのまにか(C#4.0から)[[動的型付け言語]]の特性も備え、旧来の形式張った分類法ではどうしたらいいのか困るあらゆる方向を向いている[[プログラミング言語]]である。 C#のECMA Internationalによる標準規格名は「'''ECMA-334'''」である。 C#と[[.NET Framework]]はイコールと思われていることが多いが、あくまでC#は特定の環境に依存しない[[プログラミング言語]]であり、ECMAなどの標準規格においても言語(ECMA-334)と動作環境([[ECMA-335]])は分離されている。 == 概要 == C#は、常に日陰者であった[[ボーランド]]社の[[Turbo Pascal]](とくに[[Turbo Pascal 5.5]]の血が濃い)の流れを組む[[プログラミング言語]]であり、[[Object Pascal]]([[Delphi]])に続くTurbo Pascal一族の正当な後継言語である。 パッと見た構文は[[Java]]に似ているように見えるが、これは「Javaのパクリだから簡単だよ」と世に溢れるJavaプログラマーを騙し、C#のプロジェクトに誘い込むための罠である。あくまでJava風なのは見た目だけであり、構文や掟は基本的に[[Turbo Pascal]]であるため、騙されたJavaプログラマーは一時的に精神錯乱状態に陥るが、そこで脱落しなかった多くの者はPascal教へ入信し、[[プログラマー]]の悟りをひらくこととなる。 == 生い立ち == 遙か昔、[[ボーランド]]社が売っていた[[Turbo Pascal]]、[[Delphi]]は[[アンダース・ヘルスバーグ]]による洗練された設計と圧倒的なポテンシャルを持っていた。にも関わらずサードパーティ製開発ツールであるがため常に二番手の日陰者であった。 その[[ボーランド]]社で1994年頃、創業メンバーと会社乗っ取りを目論む取締役会との派閥闘争が勃発。この派閥闘争は創業メンバーの敗北に終わり、[[フィリップ・カーン]]や[[アンダース・ヘルスバーグ]]、[[ポール・グロス]]をはじめとする創業初期メンバーと、その関連部署(主に開発ツール部門)の社員が全員クビになるという大事件が発生した。 それを知った[[ビル・ゲイツ]]が「私の味方になれば世界の半分をやろう」と言ったかどうかは知らないが、[[ボーランド]]をリストラされたほぼ全員が[[マイクロソフト]]に再就職し、復讐を誓ったという。そして[[Delphi]]と[[Visual Component Library]] ([[VCL]])を魔改造したC#と[[.NET Framework]]が生まれた。 その当時、[[マイクロソフト]]には創業の祖であり同社にとって創造主、いわゆる神である[[ポール・アレン]]と[[ビル・ゲイツ]]の作った[[MS-BASIC]]、その流れを組み、かつ[[MS-DOS]]の生みの親であり第二の神である[[ティム・パターソン]]が指揮した[[Visual Basic]]が主力であった。にも関わらず、それらを全て捨てるという決断を下すほど[[Turbo Pascal]]の一族は圧倒的な完成度であったという。 以上のような経緯もあり、公開当初のC# 1.x系は[[Delphi]]の見た目を変えただけの方言という感じで、標準ライブラリも[[VCL]]そのもので[[バグ]]まで完全移植という代物であったが、当時大流行していた[[Java]]風に[[実行ラインタイム]]を[[仮想マシン]]、[[メソッドポインタ]]を[[デリゲート]]などと各種用語の呼び名も刷新することで「まるで新しいもの」と思わせた細かいマーケティング戦略(いわゆる「[[リネーム商法]]」)も功を奏し、[[Delphi]]以前を知らない多くの人はコロッと騙された。 なお、C# 2.0から壮絶な進化が始まり、2012年3月31日時点での最新バージョンであるC# 4.0は、ほぼ初期(C# 1.x)の原型をとどめない形となっている。 == 進化の系譜 == === C# 1.0 === ほぼ[[Delphi]]そのもの。 * [[C Sharp/仮想関数|C#/仮想関数]] * [[C Sharp/プロパティー|C#/プロパティー]] - [[プロパティー]] * [[C Sharp/インデクサー|C#/インデクサー]] - [[インデクサー]] * [[C Sharp/デリゲート|C#/デリゲート]] - [[デリゲート]] * [[C Sharp/イベント|C#/イベント]] - [[イベント]] === C# 1.2 === コメント形式が変わった。 === C# 2.0 === * [[イテレーター]] * [[匿名メソッド]] * [[ジェネリクス]] * パーシャルクラス * [[C Sharp/null許容値型|null許容値型]] * [[C Sharp/null合体演算子|null合体演算子]] * アクセサのアクセスレベル * staticクラス * namespace alias qualifier * extern alias * pragma * Conditional * 固定長配列 * デリゲートの Covariance/Contravariance <ref>http://ufcpp.net/study/csharp/ap_ver2.html</ref> === C# 3.0 === * [[LINQ]] * 型推論 * 拡張メソッド * ラムダ式 * 初期化子 * 匿名型 * 暗黙型付け配列 * 自動プロパティ * パーシャルメソッド <ref>http://ufcpp.net/study/csharp/ap_ver3.html</ref> === C# 4.0 === * dynamic * オプション引数 * 名前付き引数 * ジェネリックの共変性・反変性 * COM 相互運用時の特別処理 <ref>http://ufcpp.net/study/csharp/ap_ver4.html</ref> === C# 5.0 === * 非同期処理 * Caller Info 属性 * foreach の仕様変更 <ref>http://ufcpp.net/study/csharp/ap_ver5.html</ref> == 記述例 == * [[フィボナッチ数/C Sharp|フィボナッチ数の記述例]] == 関連項目 == * [[.NET Framework]] * [[Turbo Pascal]] * [[Delphi]] * [[プログラミング言語]] * [[リネーム商法]] == 参考文献 == {{Reflist}} == 外部リンク == {{stub}}
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
テンプレート:Reflist
(
編集
)
本文の横幅制限を有効化/無効化