Logic Delight

明日のワシは忘れてしまうから、コードにはコメントを書くのです。

Java経験者のための、C#のキャッチ・アップ用小ネタ集(第2回)

前回に引き続き、小出しにしていこうと思います。ま、前回を読んでいただいてある程度の言語仕様はフムフムって前提があったりなかったりする流れで、導入編に続いて早速ですが、大半の御仁の興味となるであろう「基本的なコーディング方法:書きっぷり編」ですな。ここから一気に構成が混沌と乱雑にカオスってきますので、優しい眼差しでご賞味下さいませ。

文字列の比較は、string.Equals()メソッドではなく == 演算子を使うべし

C# 文字列の比較」でググったら諸説出て来ましたが、要は、処理速度が優位の .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)
  {
    //...
  }
}

コンストラクタの使用 (C#) by MSDN

コレクション系クラスの命名が微妙に違う

Collectionとしては、ArrayList や HashMap をまず探したいですよね。また、Collection系のインターフェース一族の家系図も把握しておいてもいいかも、です。

  • IEnumurable
    • ICollection ... implement -> Queue, Stack
      • IDictionary ... implement -> Hashtable
      • IList ... implement -> ArrayList

ジェネリック バージョン

  • IEnumerable
    • ICollection
      • IDictionary ... implement -> Dictionary
      • IList ... implement -> List

JavaとC#のコレクションクラスの対応表|情報科学を学ぶ大学生のブログ