Пример #1
0
        public void MyIntFunctionTest()
        {
            int LocalSquare(int x)
            {
                return(x * x);
            }

            MyIntFunction square1 = Square;

            // evolution of the lambda (fat arrow =>) function
            MyIntFunction square2 = delegate(int x) { return(x * x); };
            MyIntFunction square3 = x => { return(x * x); };
            MyIntFunction square4 = x => x * x;

            MyIntFunction square5 = LocalSquare;


            Assert.AreEqual(9, Square(3), $"{nameof(Square)} failed.");
            Assert.AreEqual(9, LocalSquare(3), $"{nameof(LocalSquare)} failed.");
            Assert.AreEqual(9, square1(3), $"{nameof(square1)} failed.");
            Assert.AreEqual(9, square2(3), $"{nameof(square2)} failed.");
            Assert.AreEqual(9, square3(3), $"{nameof(square3)} failed.");
            Assert.AreEqual(9, square4(3), $"{nameof(square4)} failed.");
            Assert.AreEqual(9, square5(3), $"{nameof(square5)} failed.");

            Assert.AreEqual(9, MyIntExecutor(square1, 3), $"{nameof(MyIntExecutor)} failed.");
            Assert.AreEqual(6, MyIntInvoker(Add, 3), $"{nameof(Add)} failed.");

            Assert.AreEqual(9, MyIntInvoker(i => i + i + i, 3));
        }
Пример #2
0
 private static int MyIntInvoker(MyIntFunction myIntFunction, int value)
 {
     return(myIntFunction.Invoke(value));
 }
Пример #3
0
 private static int MyIntExecutor(MyIntFunction myIntFunction, int value)
 {
     return(myIntFunction(value));
 }