連載:[完全版]究極のC#プログラミング

Chapter1 C# 3.0らしいプログラミングとは?

川俣 晶
2009/07/31

1.8 JavaScriptとの相違点

 ここでは、JavaScriptプログラミングで匿名関数を湯水のごとく使うのと同様に、C# 3.0でもラムダ式を湯水のごとく使うプログラミングが可能であることを説明した。

 しかし、クラスベースとプロトタイプベースの違いを別としても、両者には決定的な差がある。それは、C# 3.0はJavaScriptと違って、強い「型付け」がなされたタイプセーフな言語であるという点である。

 JavaScriptは、つねに型変換が自動的に行われてデータの型を意識しなくてもプログラミングできるようになっている。たとえば、「javascript:alert("3" - 2);」は「1」を表示する。しかし、C# 3.0ではこのような文字列と数値を引き算するようなプログラミングは通らない。すべての型は厳格に扱われているのである。

 つまり、クラスが主役から引き下ろされたとしても、型チェックの厳格さは手放していないのである。それどころか、ジェネリックの導入により、より厳格な型チェックが可能になったといってもよい。

 そのため、コンパイル時の型チェックは厳格に行われ、安全度は高い。プログラムが巨大化しても、型の整合性の破れはコンパイル時に検出できる可能性が高く、ある程度以上の規模の開発にも安心して利用できる。

 また、継承の使用頻度が減ったことから、キャストの出番も減った感がある。キャストが減れば実行時の型不整合も起こりにくい。これも、好ましい特徴といえるだろう。


 INDEX
  [完全版]究極のC#プログラミング
  Chapter1 C# 3.0らしいプログラミングとは?
    1.はじめに/本書の位置づけ
    2.1.1 意外性あり? 本書で解説すること/C# 3.0の適用範囲/筆者の来歴
    3.1.2 C# 3.0らしいソースコードとは?
    4.1.3 コードの遅延実行という例
    5.1.4 インターフェースとの比較
    6.1.5 後退するクラスの立場
    7.1.6 クラスベースとプロトタイプベース
    8.1.7 クラスベースの問題点/【C#olumn】クラスの問題とは何か?
  9.1.8 JavaScriptとの相違点
    10.まとめ/【C#olumn】金のハンマーと銀の弾丸―クラス至上主義
 
インデックス・ページヘ  「[完全版]究極のC#プログラミング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間