C#/문법

C# 문법 5

psb08 2024. 11. 25. 09:31
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

'C# > 문법' 카테고리의 다른 글

C# 문법 7 -- 구조체(Struct)  (0) 2024.11.27
C# 문법 6  (0) 2024.11.26
C# 문법 4  (0) 2024.11.24
C# 문법 3  (0) 2024.11.24
C# 문법 2  (0) 2024.11.20