개발/C# 공부
[C# 공부] 10. 함수
서호Seoho
2020. 11. 12. 22:17
반응형
- 메소드를 선언할 때 매개변수를 선언과 동시에 초기화 해 놓으면, 메소드를 호출할 때 매개변수를 지정하지 않아도 기본값으로 자동 설정된다. >> 기본 매개변수, 선택적 인수
using System;
class Quotes
{
static void Main()
{
Log("디버그");
Log("에러", 4);
}
static void Log(String message, byte level = 1) //매개변수를 1로 초기화
{
Console.WriteLine($"{message},{level}");
}
}
- 명명된 매개변수 : 함수를 호출할 때 매개변수 이름을 직접 지정 가능하다.
using System;
class Quotes
{
static void Main()
{
Sum(10, 20);
Sum(first: 10, second: 20);
Sum(second: 20, first: 10);
}
static void Sum(int first, int second)
{
Console.WriteLine($"{first},{second}");
}
}
- 함수 오버로드 : 매개변수를 달리해서 이름이 동일한 함수 여러 개를 정의할 수 있다. '다중 정의'라고도 한다.
using System;
class Quotes
{
static void Main()
{
GetNumber(1234);
GetNumber(1234L);
}
static void GetNumber(int number)
{
Console.WriteLine($"Int32 : {number}");
}
static void GetNumber(long number)
{
Console.WriteLine($"Int64 : {number}");
}
}
- 재귀함수 : 함수에서 함수 자신을 호출하는 것
using System;
class RecursionDemo
{
static void Main()
{
Console.WriteLine(4 * 3 * 2 * 1);
Console.WriteLine(FactorialFor(4));
Console.WriteLine(Factorial(4));
Console.WriteLine(Fact(4));
}
static int Fact(int n)
{
return (n > 1) ? n * Fact(n - 1) : 1;
}
static int Factorial(int n)
{
if(n==0 || n == 1)
{
return 1;
}
return n * Factorial(n - 1);
}
static int FactorialFor(int n)
{
int result = 1;
for (int i=1;i<=n; i++)
{
result *= i;
}
return result;
}
}
- 전역변수(필드) : 클래스와 같은 레벨에서 선언된 변수. _ 또는 m_ 접두사를 붙이는 경향이 있음.
- 지역변수 : 함수 레벨에서 선언된 변수
using System;
class RecursionDemo
{
static String message = "전역 변수";
static void Main()
{
ShowMessage();
Console.WriteLine(message);
}
static void ShowMessage()
{
string message = "지역 변수";
Console.WriteLine(message);
}
}
- 화살표 함수
using System;
class RecursionDemo
{
static void Main()
{
Hi();
Multiply(3, 5);
}
static void Hi() => Console.WriteLine("안녕하세요");
static void Multiply(int a, int b) => Console.WriteLine(a * b);
}
- 로컬 함수 : 함수 내에서만 사용하는 또 다른 함수를 만드는 것
using System;
class RecursionDemo
{
static void Main()
{
void Display(String text)
{
Console.WriteLine(text);
}
Display("로컬 함수");
}
}
반응형