재밌고 어려운 IT를 이해해보자~!
메소드 본문
. C#에서의 메소드(Method)는, C언어와 C++의 함수(Function)와 비슷한 기능을 한다.
예를 들어서, 아래는 제곱 후 결과물을 출력하는 기능을 가진 메소드이다.
static void square(int a) {
Console.WriteLine("{0}*{1}={2}", a, a, a*a);
}
[접근 지정자] 반환형식 메소드명(매개변수 목록) {
// 실행될 코드
}
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0}", Division(40, 10));
}
static int Division(int a, int b)
{
return a / b;
}
}
}
이런 형태로 Console.WriteLine을 사용해 바로 메소드를 호출해 사용이 가능하다.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int a = 40;
int b = 10;
Console.WriteLine("Swap before: a={0}, b={1}", a, b);
Swap(ref a, ref b);
Console.WriteLine("Swap after: a={0}, b={1}", a, b);
}
static void Swap(ref int a, ref int b)
{
int temp = b;
b = a;
a = temp;
}
}
}
ref 를 사용해 call by reference가 가능하다.
ref 키워드를 사용하면 변수의 값을 그대로 전달하는 게 아닌, 변수의 메모리 주소를 전달한다고 기억하자
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0}", Add(50, 10));
Console.WriteLine("{0}", Add(544.2, 63.2));
Console.WriteLine("{0}", Add(4, 7, 9));
}
static int Add(int a, int b)
{
Console.WriteLine("두 int형 끼리의 덧셈");
return a + b;
}
static double Add(double a, double b)
{
Console.WriteLine("두 double형 끼리의 덧셈");
return a + b;
}
static int Add(int a, int b, int c)
{
Console.WriteLine("세 int형 끼리의 덧셈");
return a + b + c;
}
}
}
오버로딩 가능
params
params 키워드의 기능은 메소드에 여러개의 값을 전달할 수 있도록 도와준다.
params 키워드 말고도 배열이란 개념이 사용
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("sum={0}", total(20, 10, 40, 4, 7, 6, 44, 55, 2));
Console.WriteLine("sum={0}", total(30, 4, 5));
}
static int total(params int[] list)
{
int sum = 0;
for (int i = 0; i < list.Length; i++)
sum += list[i];
return sum;
}
}
}
Comments