같은편
홍익대 게임소프트웨어전공의 프로그래밍 단련 공간
같은편
깃허브 주소
https://github.com/madongchan
GitHub 아이콘
  • 분류 전체보기 (85)
    • 게임 프로그래밍 패턴 (2)
    • C# 프로그래밍 (26)
    • C++ 프로그래밍 (32)
      • 함수 (8)
      • 클래스 (22)
    • 알고리즘 공부 (2)
      • codingame 사이트 문제 (11)
    • 유니티엔진 - 게임 공부 (3)
    • 언리얼엔진 - 게임 공부 (4)
    • 쓸모 있을 수 있는 팁 (2)
    • 일상이야기 (3)

최근 댓글

태그

  • 탐욕 알고리즘
  • 최단 경로
  • 언리얼
  • 알고리즘
  • 스레드
  • C#
  • queue
  • 객체
  • 비동기
  • 복사 생성자
  • 람다식
  • 문제 풀이
  • 언리얼엔진4
  • 언리얼엔진
  • c++
  • DFS
  • 함수
  • 클래스
  • task
  • 예외 처리

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
같은편

홍익대 게임소프트웨어전공의 프로그래밍 단련 공간

"=>" 연산자가 람다식 말고 쓰이는 곳 "식 본문 멤버"
C# 프로그래밍

"=>" 연산자가 람다식 말고 쓰이는 곳 "식 본문 멤버"

2023. 3. 6. 16:02

식 본문 멤버(Expression-Bodied Member)는 C# 6.0에서 도입된 기능으로, 간단한 속성, 메서드, 생성자, 종료자, 인덱서 및 연산자를 정의하는 더 간결한 방법을 제공합니다.

기존 코드보다 더 짧고 읽기 쉬운 코드를 작성할 수 있도록 도와줍니다.

 

▶Expression-Bodied Member의 작동 방식

Expression-Bodied Member는 람다 식과 유사하게 작동합니다. 멤버 본문이 단일 식으로 구성된 경우 => 연산자를 사용하여 식을 직접 지정할 수 있습니다.

 

예제 코드를 보면 이해가 될 겁니다.

// 간단한 속성 정의
public string Name => "John Doe";

// 간단한 메서드 정의
public int Add(int x, int y) => x + y;

// 코드 예시
public class Enemy : MonoBehaviour
{
    public float Speed { get; set; }

    public void Move()
    {
        transform.Translate(Vector3.forward * Speed * Time.deltaTime);
    }

    public float GetDistanceToPlayer() => Vector3.Distance(transform.position, Player.instance.transform.position); // Expression-Bodied Member 사용

    private void Update()
    {
        Move();

        // 플레이어와의 거리를 계산
        float distance = GetDistanceToPlayer();

        // ...
    }
}

▶ Expression-Bodied Member의 장점

  • 간결성: 코드를 더 짧고 읽기 쉽게 만들 수 있습니다.
  • 생산성 향상: 간단한 멤버를 정의할 때 코드 작성 시간을 줄일 수 있습니다.
  • 코드 유지 관리: 코드를 더 명확하고 이해하기 쉽게 만들 수 있습니다.

▶ Expression-Bodied Member의 단점

  • 복잡한 멤버에는 적합하지 않음: 멤버 본문이 복잡한 경우 식 본문 형식을 사용하는 것이 어려울 수 있습니다.
  • 코드 가독성 저하: 잘못 사용하면 코드 가독성을 저하시킬 수 있습니다.

▶ Expression-Bodied Member 사용 시 고려 사항

  • 멤버 본문이 간단한 경우에만 사용하십시오.
  • 코드 가독성을 유지하기 위해 신중하게 사용하십시오.
  • 다른 개발자가 코드를 이해할 수 있도록 명확하고 간결한 식을 사용하십시오.
저작자표시 비영리 변경금지 (새창열림)

'C# 프로그래밍' 카테고리의 다른 글

프로세스와 스레드에 대한 이론 정리글(1) (feat. chat gpt)  (0) 2023.03.09
[C#] 직렬화  (0) 2023.03.07
[C#] 문 형식의 람다식  (0) 2023.03.06
[C#] 익명 메소드와 람다식  (0) 2023.02.28
[C#] 대리자(Delegate)  (0) 2023.02.27
    같은편
    같은편
    책을 통해 이때까지 블로그나 유튜브에서 얻었던 지식의 파편들을 정립하고 합쳐 단단한 발판으로 만들기 위한 블로그

    티스토리툴바