সি # 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
), এবং এমএসডিএন নমুনাটি একই দেখায়