সি # 5 অ্যাসিক্রোনাস প্রোগ্রামিংয়ের জন্য asyncএবং awaitমডেলটি প্রবর্তন করার পরে , সি # সম্প্রদায় একটি প্রত্যাশিত ধরণের প্রত্যাবর্তনের পদ্ধতিগুলিতে একটি "অ্যাসিঙ্ক" প্রত্যয় যুক্ত করার জন্য একটি নামকরণ সম্মেলনে উপস্থিত হয়েছিল:
interface Foo
{
Task BarAsync();
}
অবিচ্ছিন্ন প্রোগ্রামিংয়ের আশেপাশে কোড গন্ধ সনাক্ত করার সময় অনেক স্থিতিশীল কোড বিশ্লেষক (উভয় রোজলিন ভিত্তিক এবং অ-রোজলিন ভিত্তিক) এই নামকরণ কনভেনশনের উপর নির্ভর করতে রচনা করা হয়েছিল।
এখন যেহেতু সি # 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>();
}
উপরোক্ত বিকল্পগুলি সম্পর্কে কী নামকরণের কনভেনশন গাইডলাইন (সি # ল্যাঙ্গুয়েজ টিম,। নেট ফাউন্ডেশন বা অন্যান্য কর্তৃপক্ষের কাছ থেকে) রয়েছে, যেমন সি # 5 নামকরণ কনভেনশনটি কীভাবে নির্বিঘ্নভাবে মানক করা হয়েছিল এবং প্রোগ্রামারদের মতামত ভিত্তিক রায়কে ছেড়ে যায়নি?
Asyncফিরে আসা পদ্ধতির জন্য প্রত্যয় ব্যবহার করে IAsyncEnumerable, যেমন চ্যানেলরিডার R রিডএলএলসিঙ্ক । অন্যান্য ক্ষেত্রে যেমন, ইএফ কোর- AsAsyncEnumerable()এ ব্যবহৃত হয়েছে যা ইতিমধ্যে পরিষ্কার
asyncব্যবহারের পদ্ধতি চিহ্নিত করুনawait), এবং এমএসডিএন নমুনাটি একই দেখায়