|
|
클래스의 인스턴스를 통해 호출
public class Calculator { public int Add(int a, int b) { return a + b; } }
🔹 2. 정적 함수 (Static Method)
객체 생성 없이 클래스 이름으로 직접 호출 가능
public static class MathHelper { public static int Square(int x) { return x * x; } }
🔹 3. 반환값이 있는 함수
return 키워드를 사용해 결과 반환
public string GetMessage() { return "Hello, World!"; }
🔹 4. 반환값이 없는 함수 (void 함수)
작업 수행만 하고 값을 반환하지 않음
public void PrintMessage() { Console.WriteLine("Hello!"); }
🔹 5. 매개변수가 있는 함수
외부에서 값을 전달받아 동작
public void Greet(string name) { Console.WriteLine($"Hello, {name}"); }
🔹 6. 선택적 매개변수 / 기본값 public void ShowMessage(string msg = "기본 메시지") { Console.WriteLine(msg); }
🔹 7. 가변 인수 함수 (params)
매개변수 개수가 유동적인 함수
public void PrintNumbers(params int[] numbers) { foreach (int n in numbers) Console.WriteLine(n); }
🔹 8. 오버로드 함수 (Method Overloading)
같은 이름, 다른 매개변수 형식
public void Show() {} public void Show(string msg) {} public void Show(int num) {}
🔹 9. 제네릭 함수
다양한 타입에 대해 하나의 함수 정의
public T GetMax<T>(T a, T b) where T : IComparable<T> { return a.CompareTo(b) > 0 ? a : b; }
🔹 10. 익명 함수 (Anonymous Method)
이름 없이 delegate에 직접 지정
Action greet = delegate { Console.WriteLine("Hello from anonymous method"); };
🔹 11. 람다 함수 (Lambda Expression)
익명 함수를 간결하게 표현
Func<int, int, int> add = (a, b) => a + b; Console.WriteLine(add(3, 4)); // 출력: 7
🔹 12. 로컬 함수 (Local Function)
함수 안에 정의된 내부 함수
void Outer() { void Inner() { Console.WriteLine("This is an inner function"); } Inner(); }
🔹 13. 비동기 함수 (Async Method)
비동기 작업 수행
public async Task<string> GetDataAsync() { await Task.Delay(1000); return "Completed"; }
🔹 14. 생성자 함수 (Constructor)
클래스 인스턴스를 초기화하는 특수 함수
public class Person { public string Name; public Person(string name) { Name = name; } }
🔹 15. 소멸자 함수 (Destructor)
객체가 메모리에서 제거될 때 호출 (~ClassName())
~Person() { Console.WriteLine("Object destroyed"); }
🔹 16. 확장 메서드 (Extension Method)
기존 타입에 메서드를 추가하는 방식
public static class StringExtensions { public static int WordCount(this string str) { return str.Split(' ').Length; } } // 사용 string msg = "Hello world from C#"; int count = msg.WordCount();
✅ 정리: C# 함수 분류표
구분 예시
| 정적 함수 | static 키워드 사용 |
| 인스턴스 함수 | 객체 생성 후 사용 |
| 반환형/무반환 | int, string, void 등 |
| 매개변수 | 기본값, params, 선택적 |
| 오버로드 | 동일 이름, 다른 시그니처 |
| 제네릭 | <T> 사용 |
| 비동기 | async, await |
| 익명/람다 | delegate, => |
| 로컬 함수 | 함수 내부에 정의 |
| 확장 함수 | this 키워드로 기존 타입 확장 |
| 생성자/소멸자 | new, ~ 키워드 관련 |
필요하시면 각 함수 유형에 대한 코드 예제 실습 프로젝트나 특정 함수 활용 사례(예: 비동기 처리, 람다식 사용 등)를 제공해 드릴 수 있습니다!