TIL. 196 [C#] 람다식 사용 방법

조윤식·2022년 9월 23일
0

이번 포스팅에서는 C# 문법 중에 람다 표현식이 있는데 람다식 사용 방법에 대해서 간단히 알아보도록 하겠습니다.

먼저, 람다식(Lambada Expression)은 C# 3.0부터 지원이 되었습니다.

람다식은 무명 함수를 표현하는데 사용되는 문법입니다. 람다식 표현 형태는 아래와 같습니다.

람다식 문법 : (입력 매개변수) => { 실행문장 로직 };

위와 같은 내용만을 보고는 도저히 이해가 쉽게 되지 않을 것을 알기 때문에 바로 예제를 통하여 이해해 보도록 하겠습니다.

아래 예제 코드는, 단순히 매개변수로 이름, 나이를 입력 받아 출력하는 람다식과, 단순 메시지를 매개변수로 입력 받아 출력하는 람다식 예제코드 입니다.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Test

{

    class Program

    {

        delegate void MyDelegate(string Name, int age);

 

        delegate string Message(string message);

 

        static void Main(string[] args)

        {

            MyDelegate student = (name, age) =>

            {

                Console.WriteLine("이름 : {0}, 나이 : {1}", name, age);

            };

            student("범범조조", 27);

 

            Message message = (str) => { return str; };

 

            Console.WriteLine("이름 : {0}", message("범범조조"));

        }

    }

}

위에서 예제코드를 보시게 되면, 



단순히 입력 받은 문자들을 출력하는 표현식입니다. 



그렇다면 람다식에서는 좀 더 복잡하면서 다양한 표현식을 사용할 순 없을까요?



바로 아래 예제를 통하여 알아보도록 하겠습니다.

 

아래 예제코드는 간단한 학생 성적 관리 프로그램입니다.
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Test

{

    class Program

    {

        delegate void MyDelegate(string Name, int number);

 

        static void Main(string[] args)

        {

            MyDelegate grade = (string Name, int number) =>

            {

                if(number >= 90)

                {

                    Console.WriteLine("{0} 학생 A학점", Name);

                }

                else if(number >= 80 && number < 90)

                {

                    Console.WriteLine("{0} 학생 B학점", Name);

                }

                else if(number >= 70 && number < 80)

                {

                    Console.WriteLine("{0} 학생 C학점", Name);

                }

                else

                {

                    Console.WriteLine("{0} 학색 D학점", Name);

                }

            };

 

            grade("범범조조", 100);

            grade("홍길동", 50);

            grade("박효신", 88);

        }

    }

}

 

profile
Slow and steady wins the race

0개의 댓글

관련 채용 정보