Java経験者のための、C#のキャッチ・アップ用小ネタ集(第2回)
前回に引き続き、小出しにしていこうと思います。ま、前回を読んでいただいてある程度の言語仕様はフムフムって前提があったりなかったりする流れで、導入編に続いて早速ですが、大半の御仁の興味となるであろう「基本的なコーディング方法:書きっぷり編」ですな。ここから一気に構成が混沌と乱雑にカオスってきますので、優しい眼差しでご賞味下さいませ。
文字列の比較は、string.Equals()メソッドではなく == 演算子を使うべし
「C# 文字列の比較」でググったら諸説出て来ましたが、要は、処理速度が優位の .Equals() メソッドを使うか、それだとバギーなコードになるリスクがあるので、コンパイラの型チェックの恩恵も受けられる == を使うか、というお話だということを↓のサイトでまとめてくださっていて、ワシもモチロン後者であるべきと思うので、== 派とでいきます。
スーパークラスのコンストラクタ呼び出しは、C++ライク
//java public class Child1 extends Parent1 { public Child1(String hoge) { super(hoge); //... } }
//c# public class Child1 : Parent1 { public Child1(String hoge) : base(hoge) { //... } }
コレクション系クラスの命名が微妙に違う
Collectionとしては、ArrayList や HashMap をまず探したいですよね。また、Collection系のインターフェース一族の家系図も把握しておいてもいいかも、です。
- IEnumurable
- ICollection ... implement -> Queue, Stack
- IDictionary ... implement -> Hashtable
- IList ... implement -> ArrayList
- ICollection ... implement -> Queue, Stack
ジェネリック バージョン
- IEnumerable
- ICollection
- IDictionary
... implement -> Dictionary - IList
... implement -> List
- IDictionary
- ICollection