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つのメソッドは省略
}
}今度暇つぶしに何か作ってみるかなぁ。