[c#] C# yield 키워드와 비동기 파일 처리
C#에서 yield
키워드는 지연 실행을 가능하게 해주는 기능을 제공합니다. 이는 컬렉션이나 시퀀스와 같은 데이터를 생성하는 메서드나 이터레이터에 유용하게 사용됩니다. 또한, C#에서 비동기 파일 처리를 위해 async
및 await
키워드를 사용할 수 있습니다.
yield 키워드의 활용
yield
키워드는 함수에서 값을 반환하고 실행을 일시 중단시킵니다. 이렇게 중단된 상태에서는 호출자는 값을 얻을 수 있지만, 함수는 중단된 지점에서 계속 실행되지 않습니다. 이는 시퀀스를 생성하고 호출자에게 하나씩 반환하는 데 유용합니다.
다음은 yield
키워드를 사용하여 1부터 5까지 숫자를 생성하는 간단한 예제입니다.
public IEnumerable<int> GetNumbers()
{
for (int i = 1; i <= 5; i++)
{
yield return i;
}
}
위의 예제에서 GetNumbers
메서드는 IEnumerable<int>
를 반환하며, 호출자는 foreach
루프를 사용하여 값을 하나씩 가져올 수 있습니다.
비동기 파일 처리
C#에서 비동기 파일 처리를 할 때는 async
및 await
키워드를 활용하여 비동기 메서드를 작성하고 파일 입출력 작업을 수행할 수 있습니다.
다음은 비동기로 파일을 읽어오는 예제입니다.
public async Task<string> ReadFileAsync(string filePath)
{
using (var reader = File.OpenText(filePath))
{
return await reader.ReadToEndAsync();
}
}
위의 예제에서 ReadFileAsync
메서드는 Task<string>
을 반환하며, 파일을 비동기적으로 읽어와서 문자열로 반환합니다.
결론
C#의 yield
키워드를 사용하여 값을 생성하고, async
/await
키워드를 사용하여 비동기 파일 처리를 할 수 있습니다. 이를 활용하여 코드의 가독성을 높이고, 성능을 향상시킬 수 있습니다.
참고 문헌: