언어
[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