矢嶋聡のレビュー一覧
-
Posted by ブクログ
いわずと知れた独習シリーズのC#版。初めての人でも分かり易く、言語仕様の基礎的な内容を幅広く扱っている。これを読んだ上で、Effective C#やコーディングルールといった"より適切なプログラミングをする"ための本を読み、主要な.Netライブラリを学べば、それなりのプログラムを書けそう。
現在発注しようとしているシステムに性能問題の発生リスクがあるため、自分でもコードをチェックしたいと考え、購入。次はEffective C#を読む。
以下、C#の仕様メモ(主にJavaと比較して)
・基本的にはC++の拡張で、かなり膨大な仕様。それに対してJavaは、C++を参考に一から作り直している感じで、比較的シンプル。
・ローカルスコープ({})内の変数名は、外側と同じではいけない
・goto文が使える
・多次元配列の宣言方法([1,2]) Javaでいう多次元配列はジャグ配列
・switch文のフォールスルー禁止
・メソッドや変数の命名規則が違う(大文字始まり)
・文脈依存型var
・Stringも==で比較可能
・参照渡しのrefと出力パラメータout
・配列にするインデクサ
・アクセサを簡単に実装するプロパティ
・オーバーライドするには基本クラス側にvirtualが必要
・virtual無いメソッドと同じシグネチャで宣言すると隠蔽とみなされ警告が出る。newを頭につけると警告が消える。
・継承を禁止するsealed
・多重継承は不可になった(C++と違うところ)
・構造体
・オーバーフロー検出の切り替えchecked/unchecked
・ポインタも使えるがunsafe宣言が必要
・関数ポインタみたいなdelegate
・LINQ、ラムダ式
・asでキャスト、isで比較 -
Posted by ブクログ
お正月の仕事休みに、自室に籠って読んでみました。600頁を超えるボリュームなので、読み終えるのに苦労しました…
仕事ではレガシーな言語を使っているのですが、Java を勉強したことがあり、同じオブジェクト指向な C# なら分かるだろうと思っていたのですが、やはり難しいですね(^^;
クラス、オーバーロード、継承といった基本的なところは、Java と同じなので理解もはやかったのですが、デリゲートにジェネリックになると理解もあやしくなってきました…
プリプロセッサに至るころには、???という有様で、同様の書籍を何冊か読んでから、再度、本書を読み返したいと思っています。
C# を使えるようになるには、C# だけではなく「.NET Framework」の知識が必要だということに、本書を読んでいて気が付きました… がんばろう!