- Amazon.co.jp ・電子書籍 (791ページ)
感想・レビュー・書評
-
なんとなく使っているんだけど、わかっていないこと。
こっちがいいと思っているんだけど、言語化できていないこと。
ときどき見るんだけど、調べていない言葉。
そういうことが増えてきたので、改めて読んでみました。
やっぱり変性よくわからん。
(以下抜粋)
○第1章で、「C#は何はともあれ『型』を決めるところから始まる」と説明しましたが、実際にプログラムを書いていくと、そうでないほうが都合がよい場合があります。例えば、Webから情報を取得して、その情報を扱うような場合には、必ずしもあるフィールド(項目)が存在するとは限りません。その場合には、コンパイル時に型を決定するよりも、実行時に実際にデータを元に型情報を解決するほうが便利です。(No.1073)
○戻り値のないものでも「関数」と呼ぶのはC言語やC++言語から受け継いだ習慣です。その他の言語では、戻り値のないものは「サブルーチン」とか「プロシージャ」といって関数と区別する場合もあります。(No.2981-2983)
○デリゲートはどのようなときに使うのでしょうか? デリゲートをよく使うケースとしては、次のような例が挙げられます。・処理を部分的に差し替える(外部から与える)・処理をどこか別のタイミング/別の場所で実行してもらう(No.6239-6242)
○静的メソッドのC(B(A(x)))というような入れ子構造は、語順的に使い勝手が悪いです。そこで、静的メソッドをインスタンスメソッドと同じx.A().B().C()というような語順で呼べるようにする拡張メソッドを使うことで記述しやすくなるだけでなく、わかりやすくなります。(No.6747-6750)
○変性(variance)とは、例えば2つの型AとBに継承関係があるとき、それぞれの型から構築された型(例えばA[]とB[]など)にも継承と似た関係が成り立つことをいいます。変性には共変性(covariance)と反変性(contravariance)の2種類あります。共変性は、2つの型の関係とそこから構築された型の関係が同じ向きになることをいいます。(No.7874-7880)
○共変性のためには「型を出力(戻り値、get)にしか使わない」、反変性のためには「型を入力(引数、set)にしか使わない」という保証があればいい(No.7932-7934)
○ユーザー定義型を組み込み型と区別しないように扱うことを指して、「すべての型が第一級市民(first-classcitizen)である」という言い方をします。(No.5791-5793)
○let句を使うことで、クエリ式中で計算した値を変数に格納しておくことができます。(No.8359-8360)詳細をみるコメント0件をすべて表示