[C#] Lamda expression practice 람다식 연습
class Program
{
delegate int LamdaTest(int[] arg);
//delegate int TestWhat(int[] arg);
//delegate int Result(int[] arg);
//delegate int Sum(int[] arg);
//delegate int Calculator2(int a, int b);
//delegate string Concatenate(string[] args);
static void Main(string[] args)
{
//LamdaTest LtSum = (arg) =>
// {
// int sum =0;
// foreach (int i in arg)
// sum += i;
// return sum;
// };
//int LamdaTestResult = LtSum(new int[] { 1, 2, 3, 4, 23, 123, 1, 32, 1231, });
//Console.WriteLine(LamdaTestResult);
// TestWhat Result = (arg) =>
// {
// int sum = 0;
// foreach (int i in arg)
// sum += i;
// return sum;
// };
// int testResult = Result(new int[] { 1, 2, 3, 3, 4, 6, 7, });
// Console.WriteLine("{0}" , testResult);
// Result sumResult = (arg) =>
// {
// int hereSum = 0;
// foreach (int i in arg)
// hereSum += i;
// return hereSum;
// };
// int sum = sumResult(new int[]{1,2,3,4,5,6});
// Console.WriteLine("1+2+3+4+5+6 =" + sum);
//Sum sumdeli = (arg) =>
// {
// int mySum = 0;
// foreach (int i in arg)
// mySum += i;
// return mySum;
// };
//int sum = sumdeli(new int[] { 1, 2, 3, 4, 5 });
//Console.WriteLine("1+2+3+4+5=" + sum);
//Expression<Func<int, int, int>> expression =
// (a, b) => 1 * 2 + (a + b);
//Func<int, int, int> func = expression.Compile();
//Console.WriteLine("1*2 +({0} -{1}) = {2}", 7, 8, func(7, 8));
//Expression<Func<double, double, double>> expression2 =
// (a, b) => 1 * 3 + (a * b);
//Func<double, double, double> func2 = expression2.Compile();
//Console.WriteLine("1 *3 +({0} * {1}) = {2}", 4, 6, func2(12, 32));
//Expression<Func<float, float>> df = (a) => a * a;
//Expression<Func<int, int>> ff = (a) => a / a;
//Expression<Func<double, double, double>> gg = (a,c) => a * c ;
//Func<float, float> func3 = df.Compile();
//Console.WriteLine("{0}", func3(6));
//Calculator2 cal = (a, b) => a + b;
//Calculator2 cal2 = (a, b) => a * b;
//Console.WriteLine(" {0} ", cal(2,3));
//Console.WriteLine(" {0}", cal2(4, 5));
//Concatenate concat = (arr) =>
// {
// string result = "";
// foreach (string s in arr)
// result += s;
// };
//Console.WriteLine(concat(args));
//Func<int> func1 = () => 10;
//Console.WriteLine("func1 : {0}", func1());
//Func<int, int> func2 = (x) => x * 2;
//Console.WriteLine("func2 : {0}", func2(4));
//Func<double, double, double> func3 = (x, y) => x / y;
//Console.WriteLine("func3 :{0}", func3(43, 2));
//Action act1 = () => Console.WriteLine("Action()");
//act1();
//int result = 0;
//Action<int> act2 = (x) => result = x * x;
// // 액션인데 인트형식으로 x를 input 받아서 Method 처리 한것을 result에 저장
//act2(3);
//Console.WriteLine("{0}", result);
//int result2 = 0;
//Action<int> act3 = (x) => result2 = x * x * x;
//act3(2);
//Console.WriteLine("{0}", result2);
// Func<int, int> = (x) => x*x; return 값이 있고
// Action<int> = (x) => a = x*x; int a = 0; 리턴 값이 없다.
//Action<double, double> act3 = (x, y) =>
// {
// double pi = x / y;
// Console.WriteLine("Action<T1, T2>({0},{1}): {2}", x, y, pi);
// };
//act3(43, 4);
}
(Parameter) => expression;
(매게변수) => 식 ;
(a) => a *2;
Func<int, int> FuncTest = (A) => a*a; // 첫번째 int 형식의 입력 , return 형식인 int
Action<int, int> ActionTest = (a,b) = a *b // 두 int 모두 입력 매개변수 타입, Action<>은 return 없어용~
C# 에서 람다식은 내게 Window8과 같다. 첨 익숙해지긴 어렵지만 접근하기 쉽고 이것으로 많은 코딩표현이 가능해 보인다.
댓글
댓글 쓰기