728x90
1. 기본 생성자
public class Person
{
public string Name { get; set; }
// 기본 생성자
public Person()
{
Name = "Unknown";
}
}
var person = new Person(); // Name은 "Unknown"으로 초기화됨
클래스에 매개변수가 없는 생성자를 기본 생성자라고 합니다.
클래스의 인스턴스를 생성할 때 이 생성자가 자동으로 호출됩니다.
2. Nullable 타입
int? nullableInt = null; // null 값을 가질 수 있는 정수형 변수
C#에서는 기본 데이터 타입에 ?를 붙여서 null 값을 가질 수 있는 타입을 정의할 수 있습니다.
이를 통해 데이터가 없음을 명시적으로 표현할 수 있습니다.
3. 가변 인수
public void PrintNumbers(params int[] numbers)
{
foreach (var number in numbers)
{
Console.WriteLine(number);
}
}
// 사용 예
PrintNumbers(1, 2, 3, 4, 5);
C#에서는 메서드에 가변 개수의 인수를 전달할 수 있는 params 키워드를 지원합니다.
이를 통해 배열처럼 여러 개의 인수를 간편하게 처리할 수 있습니다.
4. 명명된 인수
public void DisplayInfo(string name, int age)
{
Console.WriteLine($"Name: {name}, Age: {age}");
}
// 명명된 인수 사용
DisplayInfo(age: 25, name: "Alice");
C#에서는 메서드 호출 시 인수의 이름을 명시적으로 지정할 수 있습니다.
이를 통해 인수의 순서에 상관없이 값을 전달할 수 있습니다.
5. 비동기 스트림
public async IAsyncEnumerable<int> GetNumbersAsync()
{
for (int i = 0; i < 5; i++)
{
await Task.Delay(1000); // 1초 대기
yield return i; // 값 반환
}
}
// 사용 예
await foreach (var number in GetNumbersAsync())
{
Console.WriteLine(number);
}
C# 8.0부터 도입된 비동기 스트림은 IAsyncEnumerable<T>를 사용하여 비동기적으로 데이터를 스트리밍할 수 있게 해줍니다.
728x90