.NET 람다식(Lambda)란 무엇인가.

람다식은 C#에서 델리게이트와 LINQ에서 자주 사용되는 간결한 함수 표현 방식입니다.  
익명 함수보다 짧고 직관적인 문법으로 코드의 가독성과 유지보수성을 크게 향상시켜 줍니다.

람다식은 익명 함수를 간결하게 표현할 수 있는 문법입니다. 

주로 함수를 값처럼 사용하고자 할 때 활용되며 코드의 간결성과 가독성을 높여주는 녀석입니다. 

.NET 에서만 사용하는 개념이 아닌 Java, Python 등 다양한 언어에서 지원하는 개념입니다. 

당연히 저는 .NET C# 기반으로 진행 예정입니다. 껄껄

 

 

람다를 알아가기전에 알아야하는 개념이 몇가지 있는데요. 

델리게이트(Delegate) 와 린큐(LINQ) 입니다. 

델리게이트는 함수를 참조할 수 있는 타입으로 함수를 변수처럼 다를 수 있게 해주는 기능 입니다. 

함수를 다른 함수에 인자로 전달하고 싶거나 실핼할 함수를 동적으로 변경하고 싶을 때 사용 합니다. 

여기서 익명 함수 개념이 등장하는데 익명 함수는 이름이 없는 메서드로 델리게이트에 함수를 직접 전달하기 위한 하나의 문법 입니다. 

https://memoryman.tistory.com/29

 

델리게이트(Delegate)

델리게이트는 메서드에 대한 참조를 캡슐화하는 형식입니다.풀어쓰면 델리게이트는 메서드를 변수처럼 다룰 수 있게 해주는 객체입니다.주로 콜백 함수나 이벤트 처리에 사용 됩니다.델리게이

memoryman.tistory.com

 

 

린큐는 .NET 에서 통합된 데이터 쿼리 기능으로 SQL 처럼 컬렉션, 배열, DB, XML 등 다양한 데이터 소스에 쿼리를 작성할 수 있게 도와주는 문법 입니다. 

쉽게 정리하자면 린큐는 코드로 쿼리를 작성한다고 생각하면 될 것 같네요. 

여기서 람다는 린큐 쿼리의 함수 표현식으로 사용됩니다. 

린큐를 좀 더 간결하게 사용하기 위해서 람다가 사용된다고 이해하시면 편할 것 같습니다. 

 

 

람다식은 코드의 간결성을 향상 시키기 위해서 사용한다고 말씀 드렸는데요. 

델리게이트에 익명 함수를 사용했을 경우와 람다를 사용했을 경우를 비교해보면 람다식이 훨씬 간결하다는걸 알 수 있습니다. 

public delegate void MM_Delegate(string message);

public class MemoryMan
{
    // 익명 함수
    public MM_Delegate mmDel = delegate (string message)
    {
        Console.WriteLine(message);
    };

    // 람다식
    public MM_Delegate mmDel2 = (message) => Console.WriteLine(message);
}

 

람다를 적용한 코드에 대해서 알아볼게요. 

우선 기본 문법 입니다. 

() 안에는 파라미터가 들어가게 되는데요. 

파라미터가 없으면 생략 가능하며 2개 이상일 경우 콤마로 구분합니다. 

=> 기준으로 오른쪽에는 공식이 적용 됩니다. 

(x,y) => x + y 일 경우 파라미터 x, y 를 더한값이 공식이 됩니다. 

이러한 문법 자체를 람다식이라고 정의 합니다. 

(매개변수) => 식 또는 문장

 

파라미터가 없어도 사용이 가능 합니다. 

() 파라미터를 의미하므로 안에 값이 없으면 파라미터가 없는 람다식 입니다. 

.NET 에서 람다식 반환형태는 델리게이트로 추론 합니다. 

정확하게 말하면 Func 와 Action 클래스 형태인데 이는 델리게이트 포스팅을 보면 이해될거에요.

람다는 정해진 반환형이 없기 때문에 추론이라 표현 합니다. 

public class Program
{
    static void Main()
    {
        var test = () => 1 + 1;
        var test2 = () => Console.WriteLine("Memory!");
        var test3 = () => MM_Method();
        Console.WriteLine(test());
        test2();
        Console.WriteLine(test3());
    }

    public static string MM_Method()
    {
        return "Hi";
    }
}

 

 

람다를 공부하기 전에는 람다라는게 어떤 기능인 줄 알았는데, 

람다는 린큐와 델리게이트에서 사용하기 위한 문법이라는걸 알게되었다. 

오늘도 메모리!

 

'.NET' 카테고리의 다른 글

.NET 타스크(Task)란 무엇인가.  (0) 2025.05.27
.NET 델리게이트(Delegate)란 무엇인가.  (0) 2025.04.15
.NET 데퍼(Dapper)란 무엇인가.  (0) 2025.04.08
.NET 린큐(LINQ) 무엇인가.  (0) 2025.04.07
.NET 의존성 주입(Dependency Injection) 무엇인가.  (0) 2025.03.28
'.NET' 카테고리의 다른 글
  • .NET 타스크(Task)란 무엇인가.
  • .NET 델리게이트(Delegate)란 무엇인가.
  • .NET 데퍼(Dapper)란 무엇인가.
  • .NET 린큐(LINQ) 무엇인가.
memoryman
memoryman
memoryman 님의 블로그 입니다.
  • memoryman
    MEMORYMAN STACK
    memoryman
  • 전체
    오늘
    어제
    • 분류 전체보기 (55)
      • Dart (11)
      • Python (2)
      • C# (1)
      • DB (5)
      • Algorithm (1)
      • Project (4)
      • IT (12)
      • .NET (7)
      • Flutter (12)
  • 블로그 메뉴

    • 프로필
    • 방명록
    • 메모장
    • 자소서
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    D
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
memoryman
.NET 람다식(Lambda)란 무엇인가.
상단으로

티스토리툴바