using System;
using System.Collections;
namespace Chapter01All
{
delegate ArrayList Ary(int x);
class DelegateLambdaSample2
{
static void Main()
{
Ary aryOp = AryCreate;
var ary = aryOp(10);
foreach (int x in ary)
Console.Write(x + " ");
Console.WriteLine();
Ary aryOp2 = n =>
{
ArrayList ans = new ArrayList();
for (int i = 0; i < n; i++)
{
ans.Add(i);
}
return ans;
};
var ary2 = aryOp2(20);
foreach (int x in ary2)
Console.Write(x + " ");
}
static ArrayList AryCreate(int a)
{
ArrayList ans = new ArrayList();
for (int i = 0; i<a; i++)
ans.Add(i);
return ans;
}
}
}
using System;
using System.Collections;
namespace Chapter01All
{
delegate ArrayList Ary(int x, int y);
class DelegateLambdaSample2
{
static void Main()
{
Ary aryOp = AryCreate;
var ary = aryOp(10, 20);
foreach (int x in ary)
Console.Write(x + " ");
Console.WriteLine();
Ary aryOp2 =( n, m) =>
{
ArrayList ans = new ArrayList();
for (int i = n; i < m; i++)
{
ans.Add(i);
}
return ans;
};
var ary2 = aryOp2(20, 30);
foreach (int x in ary2)
Console.Write(x + " ");
}
static ArrayList AryCreate(int a, int b)
{
ArrayList ans = new ArrayList();
for (int i = a; i < b; i++)
ans.Add(i);
return ans;
}
}
}
デリゲートは共通で使えるので、ステートメントの形式のラムダと関数を比較してみました。上のと下のはほぼ同じです。引数が下は2個あります。