C # 5 가 비동기 프로그래밍을위한 모델 async
과 await
모델을 도입 한 후 C # 커뮤니티는 명명 규칙에 도달하여 다음과 같이 대기 가능한 유형을 리턴하는 메소드에 "Async"접미 부를 추가합니다.
interface Foo
{
Task BarAsync();
}
많은 정적 코드 분석기 (Roslyn 기반 및 비 Roslyn 기반)는 비동기 프로그래밍에서 코드 냄새를 감지 할 때이 명명 규칙에 따라 작성되었습니다.
C # 8에서 비동기 열거 형 개념을 도입 했으므로 이제는 기다릴 수 없지만 함께 사용할 수있는 await foreach
메서드를 반환하는 두 가지 옵션이있는 것 같습니다 IAsyncEnumerable
.
interface Foo
{
// No "Async" suffix, indicating that the return value is not awaitable.
IAsyncEnumerable<T> Bar<T>();
}
또는
interface Foo
{
// With "Async" suffix, indicating that the overall logic is asynchronous.
IAsyncEnumerable<T> BarAsync<T>();
}
C # 5 명명 규칙이 명확하게 표준화되고 의견에 근거한 프로그래머의 판단에 의존하지 않는 방법과 같은 위의 옵션에 대한 명확한 명명 규칙 지침 (C # 언어 팀, .NET Foundation 또는 기타 기관에서 제공)이 있습니까?
Async
방법이 반환 접미사를 IAsyncEnumerable
, 예를 들어, ChannelReader.ReadAllAsync . 다른 경우에는, EF 코어의 예를 들면, AsAsyncEnumerable()
이미 분명하다하는 데 사용됩니다
async
하고await
내부에서 사용 ) msdn 샘플 이 동일하게 표시되므로 여기에서 올바른 소리가 납니다.