Menu
Coddy logo textTech

식 본문 멤버

Coddy C# 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 70개 중 14번째.

식 본문 멤버(Expression-bodied members)는 단일 식만 포함하는 멤버를 위한 간결한 구문을 제공합니다. 중괄호를 사용하여 전체 메서드 또는 속성 본문을 작성하는 대신, => 화살표 구문을 사용합니다.

단일 식을 반환하는 메서드의 경우, 본문 전체를 다음과 같이 바꿀 수 있습니다:

// 전통적인 메서드
public int Add(int a, int b)
{
    return a + b;
}

// 식 본문 메서드
public int Add(int a, int b) => a + b;

이 구문은 읽기 전용 속성에도 작동하며, 이미 짧게 살펴보았습니다:

public class Circle
{
    public double Radius { get; set; }
    public double Area => Math.PI * Radius * Radius;
    public double Circumference => 2 * Math.PI * Radius;
}

속성 getter와 setter에 대해 개별적으로 식 본문(expression body)을 사용할 수도 있습니다:

private string name;
public string Name
{
    get => name;
    set => name = value.Trim();
}

생성자도 단일 문을 포함하는 경우 이 구문을 사용할 수 있습니다:

public class Person
{
    public string Name { get; }
    public Person(string name) => Name = name;
}

식 본문 멤버(Expression-bodied members)는 로직이 간단할 때 코드를 더 읽기 쉽게 만들어 줍니다. 간단한 연산에는 이를 사용하되, 여러 문장이나 복잡한 로직이 필요한 경우에는 기존의 본문 형식을 유지하세요.

challenge icon

챌린지

쉬움

깔끔하고 간결한 코드를 작성하기 위해 식 본문 멤버(expression-bodied members)의 강력함을 보여주는 제품 가격 계산기를 만들어 보겠습니다.

코드를 정리하기 위해 두 개의 파일을 생성합니다:

  • Product.cs: Store 네임스페이스 내에 Product 클래스를 정의합니다. 이 클래스는 다양한 식 본문 멤버를 보여주어야 합니다:
    • 자동 구현 속성인 Name (string)과 BasePrice (decimal)
    • 두 속성을 모두 설정하는 식 본문 생성자
    • 기본 가격의 10%를 계산하는 식 본문 읽기 전용 속성 TaxAmount
    • 기본 가격에 세액을 더한 값을 반환하는 식 본문 읽기 전용 속성 TotalPrice
    • 할인 금액(기본 가격에 백분율을 곱하고 100으로 나눈 값)을 반환하는 식 본문 메서드 GetDiscount(decimal percentage)
    • 총 가격에서 할인을 뺀 값을 반환하는 식 본문 메서드 GetFinalPrice(decimal discountPercentage)
  • Program.cs: 메인 파일에서 입력 값을 사용하여 Product를 생성한 다음, 가격 내역을 표시합니다.

세 가지 입력을 받게 됩니다:

  • 제품 이름
  • 기본 가격
  • 적용할 할인율

다음 형식으로 가격 세부 정보를 출력하세요:

Product: {Name}
Base Price: {BasePrice}
Tax (10%): {TaxAmount}
Total Price: {TotalPrice}
Discount ({percentage}%): {discountAmount}
Final Price: {finalPrice}

예를 들어, 입력값이 Laptop, 1000, 15인 경우 출력은 다음과 같아야 합니다:

Product: Laptop
Base Price: 1000
Tax (10%): 100
Total Price: 1100
Discount (15%): 150
Final Price: 950

단일 식을 포함하는 모든 멤버에 대해 => 화살표 구문을 사용하는 것을 잊지 마세요. 이를 통해 코드를 깔끔하고 읽기 쉽게 유지할 수 있습니다!

치트 시트

식 본문 멤버(Expression-bodied members)는 단일 식을 포함하는 멤버에 대해 => 화살표 구문을 사용하여, 기존의 메서드 및 속성 본문에 대한 간결한 대안을 제공합니다.

식 본문 메서드:

// 기존 메서드
public int Add(int a, int b)
{
    return a + b;
}

// 식 본문 메서드
public int Add(int a, int b) => a + b;

식 본문 읽기 전용 속성:

public class Circle
{
    public double Radius { get; set; }
    public double Area => Math.PI * Radius * Radius;
    public double Circumference => 2 * Math.PI * Radius;
}

식 본문 속성 getter 및 setter:

private string name;
public string Name
{
    get => name;
    set => name = value.Trim();
}

식 본문 생성자:

public class Person
{
    public string Name { get; }
    public Person(string name) => Name = name;
}

간단한 연산에는 식 본문 멤버를 사용하세요. 여러 문장이나 복잡한 로직의 경우에는 기존의 본문 형식을 사용하세요.

직접 해보기

using System;
using Store;

class Program
{
    public static void Main(string[] args)
    {
        // 입력값 읽기
        string name = Console.ReadLine();
        decimal basePrice = Convert.ToDecimal(Console.ReadLine());
        decimal discountPercentage = Convert.ToDecimal(Console.ReadLine());

        // TODO: 입력값을 사용하여 Product 객체 생성

        // TODO: GetDiscount 메서드를 사용하여 할인 금액 계산

        // TODO: GetFinalPrice 메서드를 사용하여 최종 가격 계산

        // TODO: 다음 형식으로 가격 상세 정보 출력:
        // Product: {Name}
        // Base Price: {BasePrice}
        // Tax (10%): {TaxAmount}
        // Total Price: {TotalPrice}
        // Discount ({percentage}%): {discountAmount}
        // Final Price: {finalPrice}
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨