Menu
Coddy logo textTech

식 본문 멤버

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

Expression-bodied 멤버는 단 하나의 expression만 포함하는 멤버를 위한 간결한 구문을 제공합니다. 중괄호가 있는 전체 method나 property 본문을 작성하는 대신 => 화살표 구문을 사용합니다.

단일 expression을 반환하는 method의 경우, 전체 본문을 대체할 수 있습니다:

// 전통적인 메서드
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;
}

Expression-bodied 멤버는 로직이 간단할 때 코드의 가독성을 높여줍니다. 간단한 작업에는 이를 사용하고, 여러 문장이 필요하거나 복잡한 로직이 필요한 경우에는 기존의 본문 방식을 유지하세요.

challenge icon

챌린지

쉬움

깔끔하고 간결한 코드를 작성할 수 있는 표현식 본문(expression-bodied) 멤버의 유용성을 보여주는 제품 가격 계산기를 만들어 봅시다.

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

  • Product.cs: Store namespace 내에 Product class를 정의합니다. 이 클래스는 다양한 표현식 본문 멤버를 보여주어야 합니다:
    • 자동 구현 프로퍼티인 Name (string) 및 BasePrice (decimal)
    • 두 프로퍼티를 모두 설정하는 표현식 본문 constructor
    • base price의 10%를 계산하는 표현식 본문 읽기 전용 프로퍼티 TaxAmount
    • base price에 tax amount를 더한 값을 반환하는 표현식 본문 읽기 전용 프로퍼티 TotalPrice
    • 할인 금액(base price 곱하기 percentage 나누기 100)을 반환하는 표현식 본문 method GetDiscount(decimal percentage)
    • total price에서 discount를 뺀 값을 반환하는 표현식 본문 method GetFinalPrice(decimal discountPercentage)
  • Program.cs: Main 파일에서 input 값을 사용하여 Product를 만든 다음, 가격 세부 내역을 출력합니다.

세 개의 inputs을 입력받게 됩니다:

  • 제품 이름 (Product name)
  • 기본 가격 (Base price)
  • 적용할 할인율 (Discount percentage)

다음 형식으로 가격 세부내역을 출력하세요:

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

예를 들어 inputs이 Laptop, 1000, 15인 경우 output은 다음과 같아야 합니다:

Product: Laptop
Base Price: 1000.00
Tax (10%): 100.00
Total Price: 1100.00
Discount (15%): 150.00
Final Price: 950.00

모든 금액 값은 소수점 두 자리까지 정확히 포맷팅하세요 — 예를 들어 value.ToString("F2") 또는 $"{value:F2}"를 사용합니다. 이는 base price, tax, total, discount, final price 모두에 동일하게 적용됩니다.

단일 식을 포함하는 모든 멤버에는 => 화살표 구문을 사용하는 것을 잊지 마세요. 이렇게 하면 코드가 깔끔하고 가독성이 좋아집니다!

직접 해보기

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());

        // 입력 값을 사용하여 Product 객체 생성
        Product product = new Product(name, basePrice);

        // GetDiscount 메서드를 사용하여 할인 금액 계산
        decimal discountAmount = product.GetDiscount(discountPercentage);

        // GetFinalPrice 메서드를 사용하여 최종 가격 계산
        decimal finalPrice = product.GetFinalPrice(discountPercentage);

        // 필수 형식으로 가격 세부 정보 출력:
        Console.WriteLine($"Product: {product.Name}");
        Console.WriteLine($"Base Price: {product.BasePrice:F2}");
        Console.WriteLine($"Tax (10%): {product.TaxAmount:F2}");
        Console.WriteLine($"Total Price: {product.TotalPrice:F2}");
        Console.WriteLine($"Discount ({discountPercentage}%): {discountAmount:F2}");
        Console.WriteLine($"Final Price: {finalPrice:F2}");
    }
}
quiz icon실력 점검

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

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