かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

言語的には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つのメソッドは省略
  }
}

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