[c#] C# yield 키워드와 비동기 파일 처리

C#에서 yield 키워드는 지연 실행을 가능하게 해주는 기능을 제공합니다. 이는 컬렉션이나 시퀀스와 같은 데이터를 생성하는 메서드나 이터레이터에 유용하게 사용됩니다. 또한, C#에서 비동기 파일 처리를 위해 asyncawait 키워드를 사용할 수 있습니다.

yield 키워드의 활용

yield 키워드는 함수에서 값을 반환하고 실행을 일시 중단시킵니다. 이렇게 중단된 상태에서는 호출자는 값을 얻을 수 있지만, 함수는 중단된 지점에서 계속 실행되지 않습니다. 이는 시퀀스를 생성하고 호출자에게 하나씩 반환하는 데 유용합니다.

다음은 yield 키워드를 사용하여 1부터 5까지 숫자를 생성하는 간단한 예제입니다.

public IEnumerable<int> GetNumbers()
{
    for (int i = 1; i <= 5; i++)
    {
        yield return i;
    }
}

위의 예제에서 GetNumbers 메서드는 IEnumerable<int>를 반환하며, 호출자는 foreach 루프를 사용하여 값을 하나씩 가져올 수 있습니다.

비동기 파일 처리

C#에서 비동기 파일 처리를 할 때는 asyncawait 키워드를 활용하여 비동기 메서드를 작성하고 파일 입출력 작업을 수행할 수 있습니다.

다음은 비동기로 파일을 읽어오는 예제입니다.

public async Task<string> ReadFileAsync(string filePath)
{
    using (var reader = File.OpenText(filePath))
    {
        return await reader.ReadToEndAsync();
    }
}

위의 예제에서 ReadFileAsync 메서드는 Task<string>을 반환하며, 파일을 비동기적으로 읽어와서 문자열로 반환합니다.

결론

C#의 yield 키워드를 사용하여 값을 생성하고, async/await 키워드를 사용하여 비동기 파일 처리를 할 수 있습니다. 이를 활용하여 코드의 가독성을 높이고, 성능을 향상시킬 수 있습니다.

참고 문헌: