[Coding] 같은 내용이 중복되는 함수의 현명한 사용법

2022. 5. 3. 11:31·언어
728x90

c#으로 작성된 내용입니다.

 

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Add(int a, int b, string name, int time)
        {
            int ab = a + b;
            int a_b = a - b;
            Console.WriteLine(ab);
            Console.WriteLine(a_b);
            Console.WriteLine($"a의 이름은 {name} 입니다.");
            Console.WriteLine($"남은 시간은 {time}초입니다.");
        }

        static void Add(int a, int b, string name, float time)
        {
            int ab = a + b;
            int a_b = a - b;
            Console.WriteLine(ab);
            Console.WriteLine(a_b);
            Console.WriteLine($"a의 이름은 {name} 입니다.");
            Console.WriteLine($"남은 시간은 {time}초입니다.");
        }
        static void Main(string[] args)
        {
            Add(1, 2, "바다", 3);
            Add(1, 2, "바다", 3.5f);
        }
    }
}

두 개의 함수 Add는 time의 자료형이 각각 int, float인 것 외에는 함수 내용 상 차이가 없다.

이럴 때 각 함수에 모든 내용을 다 겹쳐서 쓰기에는 많은 단점이 생긴다. 불필요한 메모리 공간을 차지하게 되며, 수정사항이 있을 때 한 함수는 수정하고 다른 함수는 지나쳐버리면 오류를 찾아 헤매게 된다.

이런 상황을 피하기 위해서는 먼저 코딩한 함수의 내용을 뒤에 올 함수를 실행시키는 모양으로 수정하면 간편하다.

​

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Add(int a, int b, string name, int time)
        {
            float _time = (float)time;
            Add(a, b, name, _time);
        }

        static void Add(int a, int b, string name, float time)
        {
            int ab = a + b;
            int a_b = a - b;
            Console.WriteLine(ab);
            Console.WriteLine(a_b);
            Console.WriteLine($"a의 이름은 {name} 입니다.");
            Console.WriteLine($"남은 시간은 {time}초입니다.");
        }
        static void Main(string[] args)
        {
            Add(1, 2, "바다", 3);
            Add(1, 2, "바다", 3.5f);
        }
    }
}

이런 식으로 간단하게 내용을 수정해주면 보기에도 깔끔하고 수정도 편리한 함수가 만들어진다.

728x90

'언어' 카테고리의 다른 글

[Coding] 인터프리터 언어(interpreter language)와 컴파일 언어(compiled language)  (0) 2023.09.25
C2371 : 재정의. 기본 형식이 다릅니다.  (0) 2023.05.26
LNK1168 : 쓰기용으로 열 수 없습니다.  (0) 2023.05.25
[Perl] 최댓값과 최솟값 구하기  (0) 2023.04.23
[UNIX] vi오류 : No write since last change (add ! to override)  (0) 2023.04.09
'언어' 카테고리의 다른 글
  • C2371 : 재정의. 기본 형식이 다릅니다.
  • LNK1168 : 쓰기용으로 열 수 없습니다.
  • [Perl] 최댓값과 최솟값 구하기
  • [UNIX] vi오류 : No write since last change (add ! to override)
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (239)
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    C언어
    C#
    네트워크
    유니티
    코딩
    Entityfamework
    EFCore
    백준
    coding
    C
    HTML
    게임서버
    unity
    tcp
    라즈베리파이
    EntityFramework
    Python
    java
    디자인패턴
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[Coding] 같은 내용이 중복되는 함수의 현명한 사용법
상단으로

티스토리툴바