この記事は、Effective C# 社内勉強会において、参加者が疑問に思った点、質問があった点をまとめたものです。
新人と、プログラム経験年数3,4年目あたりの、あまり技術向上に興味のない人が参加するとどのようなことになるか、コーヒーでも飲みながら読んでいただければ。
また、これからEffective C# を読む人の一助になれば。
そして、参加者の備忘録として。
なお、Effective C# の内容を記述したものではありませんので、本の内容を知りたい方は他ブログを参照して下さい。
#はじめに
#####本書iii「はじめに」から疑問続出!
キックオフミーティングとして、どのような形式で進めるか説明をした。参加者は新人からVB.NET開発経験3~4年まで、計7名。
Chapter1に入る前の練習として、「はじめに」を輪読形式で、それぞれ1段落ずつ読む。
以下、参加者の疑問・質問を1センテンス毎にまとめました。
ジェネリックは、普段何気なく使ってるいるけど、名前は知らない人が多数いました。
####はじめに
####本書が想定する読者
- 共通言語ランタイム(CLR)とは
- JIT(Just-In-Time)コンパイラとは
####本書の内容について
-
マネージ環境では、すべての責任が実行環境の側で管理されるというわけではありません。→どういうこと?
-
本書3章より引用し、説明:メモリ管理や、ガベージコレクタ等、メモリ管理における問題を開発者はほとんど気にする必要はない。
ただし、使用済みのものを後片付けする必要がある場合がある
ファイルのハンドル、データベース接続など
マネージ環境外のリソースを必要とするオブジェクトは、開発者自身による後処理が必要であるため。
-
本書3章より引用し、説明:メモリ管理や、ガベージコレクタ等、メモリ管理における問題を開発者はほとんど気にする必要はない。
-
.NETのBase Class Library(BCL)とは
####コード規約
-
publicメソッドでは引数やその他の入力値を検証するべきですが→何故、検証するべき?
- 説明:引数の検証を行わないと、例外が発生する恐れがある。不正な計算結果が返ることになる。検証を行うことで、引数に対する処理が正しい結果を返すことになる。
-
名前空間とは
-
インターフェースを実装していることを示すために#redion/#endregionディレクティブを使用しています。これらは必須ではなく、人によってはコード中に含まれることを嫌うかもしれませんが、~略~
→なぜ、コード中に含まれることを嫌うのか?- なんでだろう?w 人によるらしいし、保留で。
#感想
前途多難な気がしてくる。やはり予習必要か。