a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
63 lines
1.0 KiB
C#
63 lines
1.0 KiB
C#
|
|
//
|
|
// Lambda expression test, basics.
|
|
//
|
|
using System;
|
|
|
|
delegate int IntFunc (int x);
|
|
delegate void VoidFunc (int x);
|
|
|
|
class X {
|
|
|
|
static IntFunc func, increment;
|
|
static VoidFunc nothing;
|
|
|
|
public static int Main ()
|
|
{
|
|
int y = 0;
|
|
int r;
|
|
|
|
//
|
|
// The following tests body-style lambda
|
|
//
|
|
increment = (int x) => { return x + 1; };
|
|
r = increment (4);
|
|
Console.WriteLine ("Should be 5={0}", r);
|
|
if (r != 5)
|
|
return 1;
|
|
|
|
//
|
|
// This tests the body of a lambda being an expression
|
|
//
|
|
func = (int x) => x + 1;
|
|
r = func (10);
|
|
Console.WriteLine ("Should be 11={0}", r);
|
|
if (r != 11)
|
|
return 2;
|
|
|
|
//
|
|
// The following tests that the body is a statement
|
|
//
|
|
nothing = (int x) => { y = x; };
|
|
nothing (10);
|
|
Console.WriteLine ("Should be 10={0}", y);
|
|
if (y != 10)
|
|
return 3;
|
|
|
|
nothing = (int x) => { new X (x); };
|
|
nothing (314);
|
|
if (instantiated_value != 314)
|
|
return 4;
|
|
|
|
Console.WriteLine ("All tests pass");
|
|
return 0;
|
|
}
|
|
|
|
static int instantiated_value;
|
|
|
|
X (int v)
|
|
{
|
|
instantiated_value = v;
|
|
}
|
|
}
|