かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

言語的にはJavaよりC#

genericがJavaよりC#の方が手に馴染む。
newしたり出来るのがいいね!

class Hoge<T>
  where T : new()
{
  // コンパイルエラーにならない
  public T Create() { return new T(); }
}

確かJavaだとこういう風にnewは出来なかったはず。
yield returnもJavaにはないC#の魅力的な所
foreachで回せるクラスが簡単に作れちゃう。

class Program
{
  public static void Main(string[] args)
  {
    Hoge hoge = new Hoge();
    foreach(int i in hoge)
    {
      Console.WriteLine(i);
    }
  }
  
  class Hoge : IEnumerable<int>
  {
    public IEnumerator<int> GetEnumerator()
    {
      foreach(int i in new int[]{1, 2, 3})
      {
        yield return i;
      }
    }
    // もう1つのメソッドは省略
  }
}

今度暇つぶしに何か作ってみるかなぁ。