C#5 が非同期プログラミングのasync
およびawait
モデルを導入した後、C#コミュニティは、次のように、待機可能な型を返すメソッドに「非同期」サフィックスを追加する命名規則に到達しました。
interface Foo
{
Task BarAsync();
}
多くの静的コードアナライザー(Roslynベースと非Roslynベースの両方)は、非同期プログラミングに関するコードのにおいを検出するときに、この命名規則に依存するように作成されています。
C#8が非同期列挙型の概念を導入したので、それ自体は待機できませんが、と組み合わせて使用できます。await foreach
メソッドに名前を付けるための2つのオプションが返されるよう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
など、返すメソッドにサフィックスを使用します。他のケースでは、例えばEF Coreで、すでに明確に使用されていますIAsyncEnumerable
AsAsyncEnumerable()
async
で使用するawait
)ためです。msdnサンプルでも同じです