در این مقاله تاریخچه ای از هر نسخه اصلی زبان C# ارائه شده است. تیم C# همچنان به نوآوری و افزودن ویژگی های جدید ادامه می دهد. وضعیت ویژگی زبان مفصل ، از جمله ویژگی های در نظر گرفته شده برای نسخه های آینده را می توان در مخزن Dotnet/Roslyn در GitHub یافت.
زبان C# به انواع و روشهای مربوط به مشخصات C# به عنوان یک کتابخانه استاندارد برای برخی از ویژگی ها متکی است. پلت فرم .net این انواع و روش ها را در تعدادی از بسته ها ارائه می دهد. یک مثال پردازش استثنا است. هر عبارت یا عبارت پرتاب بررسی می شود تا اطمینان حاصل شود که شیء پرتاب شده از استثناء است. به همین ترتیب ، هر صید بررسی می شود تا اطمینان حاصل شود که نوع گرفتار شدن از استثناء است. هر نسخه ممکن است نیازهای جدیدی را اضافه کند. برای استفاده از آخرین ویژگی های زبان در محیط های قدیمی ، ممکن است نیاز به نصب کتابخانه های خاص داشته باشید. این وابستگی ها در صفحه برای هر نسخه خاص ثبت شده است. برای پیش زمینه در مورد این وابستگی می توانید در مورد روابط بین زبان و کتابخانه اطلاعات بیشتری کسب کنید.
ج# نسخه 11
نوامبر 2022 منتشر شد
ویژگی های زیر در C# 11 اضافه شد:
C# 11 ریاضی عمومی و چندین ویژگی را معرفی می کند که از آن هدف پشتیبانی می کند. شما می توانید یک بار برای همه انواع تعداد الگوریتم های عددی بنویسید. ویژگی های بیشتری برای آسانتر کردن کار با انواع ساختار وجود دارد ، مانند اعضای مورد نیاز و ساختارهای پیش فرض خودکار. کار با رشته ها با لفظات رشته ای خام ، خط جدید در درون یابی رشته ها و به معنای واقعی کلمه UTF-8 آسان تر می شود. ویژگی هایی مانند انواع محلی فایل ، ژنراتورهای منبع را ساده تر می کنند. در آخر ، الگوهای لیست پشتیبانی بیشتری را برای تطبیق الگوی اضافه می کنند.
C# نسخه 10
نوامبر 2021 منتشر شد
C# 10 ویژگی ها و پیشرفت های زیر را به زبان C# اضافه می کند:
ویژگی های بیشتر در حالت پیش نمایش در دسترس بود. برای استفاده از این ویژگی ها ، باید در پروژه خود پیش نمایش تنظیم کنید:
C# 10 کار خود را در مورد موضوعات حذف مراسم ، جدا کردن داده ها از الگوریتم ها و بهبود عملکرد برای زمان اجرا .net ادامه می دهد.
بسیاری از ویژگی ها به این معنی است که شما برای بیان همان مفاهیم کد کمتری تایپ می کنید. ساختار ضبط بسیاری از همان روش هایی را که کلاس های ضبط می کنند ، سنتز می کنند. ساختارها و انواع ناشناس با عبارات پشتیبانی می کنند. جهانی با استفاده از دستورالعمل ها و اعلامیه های نام نام های پرونده به این معنی است که شما وابستگی و سازمان فضای نام را با وضوح بیشتری بیان می کنید. Lambda Revircements اعلام بیان عبارات لامبدا را در جایی که استفاده می شود آسانتر می کند. الگوهای جدید املاک و پیشرفت های ساختارشکنی کد مختصر تری ایجاد می کنند.
دستگیرندگان رشته جدید درون یابی و رفتار asyncmethodbuilder می توانند عملکرد را بهبود بخشند. این ویژگی های زبانی در زمان اجرا .net برای دستیابی به پیشرفت عملکرد در .net 6 اعمال شد.
C# 10 همچنین بیشتر تغییر در سالانه Cadence برای نسخه های .net است. از آنجا که هر ویژگی نمی تواند در یک بازه زمانی سالانه تکمیل شود ، می توانید چند ویژگی "پیش نمایش" را در C# 10 امتحان کنید. هر دو ویژگی عمومی و اعضای انتزاعی استاتیک در رابط ها می توانند استفاده شوند ، اما این ویژگی های پیش نمایش ممکن است قبل از انتشار نهایی آنها تغییر کند.
ج# نسخه 9
نوامبر 2020 منتشر شد
C# 9 با .net 5. منتشر شد. این نسخه پیش فرض زبان برای هر مونتاژ است که نسخه .net 5 را هدف قرار می دهد. این شامل ویژگی های جدید و پیشرفته زیر است:
C# 9 سه مورد از نسخه های قبلی را ادامه می دهد: حذف مراسم ، جدا کردن داده ها از الگوریتم ها و ارائه الگوهای بیشتر در مکان های بیشتر.
بیانیه های سطح بالا به این معنی است که برنامه اصلی شما ساده تر است. نیاز به مراسم کمتر وجود دارد: یک فضای نام ، کلاس برنامه و استاتیک اصلی () همه غیر ضروری است.
معرفی سوابق ، نحو مختصر را برای انواع مرجع ارائه می دهد که معانی ارزش را برای برابری دنبال می کنند. شما برای تعریف ظروف داده ای که به طور معمول حداقل رفتار را تعریف می کنند ، از این نوع استفاده می کنید. فقط تنظیم کننده های اولیه توانایی جهش غیر مخرب (با عبارات) را در سوابق فراهم می کنند. C# 9 همچنین انواع بازگشت کواریانت را اضافه می کند به طوری که سوابق مشتق شده می توانند روشهای مجازی را نادیده بگیرند و نوعی حاصل از نوع بازگشت روش پایه را برگردانند.
قابلیت های تطبیق الگوی از چند طریق گسترش یافته است. انواع عددی اکنون از الگوهای دامنه پشتیبانی می کنند. الگوهای را می توان با استفاده از الگوهای و ، و یا نه ترکیب کرد. پرانتز را می توان برای روشن شدن الگوهای پیچیده تر اضافه کرد.
مجموعه دیگری از ویژگی ها از محاسبات با کارایی بالا در C#پشتیبانی می کند:
- انواع nint و nuint انواع عدد صحیح با اندازه بومی را در پردازنده هدف مدل می کنند. در ضمن اجتناب از تخصیص لازم برای ایجاد یک شیء نماینده ، عملکردی شبیه به نماینده را ارائه دهید.
- دستورالعمل محلی برای صرفه جویی در دستورالعمل ها می تواند حذف شود.
مجموعه دیگری از پیشرفت ها از سناریوهایی پشتیبانی می کند که ژنراتورهای کد عملکرد را اضافه می کنند:
- روش هایی هستند که هنگام بارگیری مونتاژ ، زمان اجرا تماس می گیرد. پشتیبانی از اصلاح کننده های جدید و انواع بازگشت غیر VOID را پشتیبانی کنید. در این موارد ، یک اجرای باید ارائه شود.
C# 9 بسیاری از ویژگی های کوچک دیگر را اضافه می کند که باعث افزایش بهره وری توسعه دهنده می شود ، چه کد نوشتن و هم خواندن:
- عبارات جدید از نوع هدف
- توابع ناشناس استاتیک
- عبارات شرطی از نوع هدف
- GetEnumerator Extension () پشتیبانی از حلقه های پیش فرض
- عبارات لامبدا می توانند پارامترهای دور انداختن را اعلام کنند
- ویژگی ها را می توان در عملکردهای محلی اعمال کرد
نسخه C# 9 کار را برای نگه داشتن C# یک زبان برنامه نویسی مدرن و عمومی ادامه می دهد. ویژگی ها همچنان به پشتیبانی از بارهای کاری مدرن و انواع برنامه ها ادامه می دهند.
ج# نسخه 8. 0
سپتامبر 2019 منتشر شد
C# 8. 0 اولین نسخه اصلی C# است که به طور خاص هسته NET را هدف قرار می دهد. برخی از ویژگی ها به قابلیت های جدید CLR متکی هستند ، برخی دیگر در انواع کتابخانه ها فقط در هسته NET اضافه شده اند. C# 8. 0 ویژگی ها و پیشرفت های زیر را به زبان C# اضافه می کند:
- عبارات سوئیچی
- الگوهای خاصیت
- الگوهای تپل
- الگوهای موقعیتی
اعضای رابط پیش فرض نیاز به پیشرفت در CLR دارند. این ویژگی ها در CLR برای .net Core 3. 0 اضافه شد. دامنه ها و شاخص ها ، و جریان های ناهمزمان به انواع جدیدی در کتابخانه های .net Core 3. 0 نیاز دارند. انواع مرجع قابل قبول ، در حالی که در کامپایلر اجرا می شوند ، هنگام حاشیه نویسی از کتابخانه ها برای ارائه اطلاعات معنایی در مورد وضعیت تهی و مقادیر بازگشت ، بسیار مفیدتر است. این حاشیه نویسی ها در کتابخانه های هسته ای .net اضافه می شوند.
ج# نسخه 7. 3
ماه مه 2018 منتشر شد
دو موضوع اصلی برای انتشار C# 7. 3 وجود دارد. یک موضوع ویژگی هایی را فراهم می کند که کد ایمن را قادر می سازد به اندازه کد ناامن عمل کند. موضوع دوم پیشرفت های افزایشی را به ویژگی های موجود ارائه می دهد. گزینه های جدید کامپایلر نیز در این نسخه اضافه شد.
ویژگی های جدید زیر از موضوع عملکرد بهتر برای کد ایمن پشتیبانی می کند:
- بدون پین کردن می توانید به زمینه های ثابت دسترسی پیدا کنید.
- می توانید متغیرهای محلی Ref را مجدداً تعیین کنید.
- می توانید از ابتدای سازنده ها در آرایه های StackAlloc استفاده کنید.
- می توانید از بیانیه های ثابت با هر نوع پشتیبانی از یک الگوی استفاده کنید.
- می توانید از محدودیت های عمومی تر استفاده کنید.
پیشرفت های زیر به ویژگی های موجود ساخته شده است:
- شما می توانید تست == و! = با انواع Tuple.
- می توانید در مکان های بیشتر از متغیرهای بیان استفاده کنید.
- شما ممکن است ویژگی هایی را به قسمت پشتیبان از خصوصیات پخش خودکار وصل کنید.
- وضوح روش هنگامی که آرگومان ها با آن متفاوت بودند بهبود یافته است.
- وضوح اضافه بار اکنون موارد مبهم کمتری دارد.
گزینه های جدید کامپایلر عبارتند از:
- برای فعال کردن امضای نرم افزار منبع باز (OSS) مجامع. برای تهیه نقشه برداری برای دایرکتوری های منبع.
ج# نسخه 7. 2
نوامبر 2017 منتشر شد
C# 7. 2 چندین ویژگی زبان کوچک اضافه کرد:
- اولیه در آرایه های stackalloc.
- از بیانیه های ثابت با هر نوع پشتیبانی از یک الگوی استفاده کنید.
- به زمینه های ثابت بدون پین کردن دسترسی پیدا کنید.
- مجدداً متغیرهای محلی را مجدداً تنظیم کنید.
- انواع ساختار readonly را اعلام کنید ، تا نشان دهد که یک ساختار تغییر ناپذیر است و باید به عنوان یک پارامتر در روش های عضو آن منتقل شود.
- در پارامترها اصلاح کننده را اضافه کنید تا مشخص کنید که یک آرگومان توسط مرجع منتقل می شود اما با روش نامگذاری شده اصلاح نمی شود.
- از اصلاح کننده Ref Readonly در روش بازده استفاده کنید تا نشان دهد که یک روش مقدار خود را با مرجع برمی گرداند اما اجازه نمی دهد تا به آن شیء بنویسید.
- انواع ساختار ref را اعلام کنید ، تا نشان دهد که یک نوع ساختار به طور مستقیم به حافظه مدیریت شده دسترسی پیدا می کند و همیشه باید پشته باشد.
- از محدودیت های عمومی اضافی استفاده کنید.
- استدلال های نامگذاری شده را می توان با استدلال های موقعیتی دنبال کرد.
- لفظهای عددی اکنون می توانند قبل از هر رقم چاپی ، دارای تأثیرات پیشرو باشند.
- اصلاح کننده دسترسی محافظت شده خصوصی امکان دسترسی به کلاسهای مشتق شده در همان مونتاژ را فراهم می کند.
- نتیجه یک بیان مشروط (؟:) اکنون می تواند یک مرجع باشد.
ج# نسخه 7. 1
اوت 2017 منتشر شد
C# انتشار نسخه های نقطه را با C# 7. 1 شروع کرد. این نسخه عنصر پیکربندی انتخاب نسخه زبان ، سه ویژگی جدید زبان و رفتار کامپایلر جدید را اضافه کرد.
ویژگی های جدید زبان در این نسخه عبارتند از:
سرانجام ، کامپایلر دارای دو گزینه اس ت-REFOUT و به طور کامل آن تولید مونتاژ مرجع کنترل
C# نسخه 7. 0
مارس 2017 منتشر شد
C# نسخه 7. 0 با Visual Studio 2017 منتشر شد. این نسخه در رگ C# 6. 0 چیزهای تکاملی و جالب دارد. در اینجا برخی از ویژگی های جدید:
سایر ویژگی ها شامل:
همه این ویژگی ها قابلیت های جدیدی را برای توسعه دهندگان و فرصتی برای نوشتن کد تمیزتر از همیشه ارائه می دهند. برجسته ، چگالش اعلامیه متغیرها برای استفاده با کلمه کلیدی OUT و اجازه دادن به مقادیر بازگشت چندگانه از طریق Tuple است..net Core اکنون هر سیستم عامل را هدف قرار داده و چشمان خود را محکم به ابر و قابلیت حمل دارد. این قابلیت های جدید مطمئناً علاوه بر ارائه ویژگی های جدید ، افکار و زمان طراحان زبان را اشغال می کند.
C# نسخه 6. 0
ژوئیه 2015 منتشر شد
نسخه 6. 0 ، منتشر شده با Visual Studio 2015 ، بسیاری از ویژگی های کوچکتر را منتشر کرد که برنامه نویسی C# را تولید می کند. در اینجا برخی از آنها آورده شده است:
سایر ویژگی های جدید عبارتند از:
هر یک از این ویژگی ها به خودی خود جالب است. اما اگر به طور کلی به آنها نگاه کنید ، الگوی جالبی را می بینید. در این نسخه ، C# شروع به از بین بردن دیگ بخار زبان کرد تا کد تر و قابل خواندن تر شود. بنابراین برای طرفداران کد تمیز و ساده ، این نسخه زبان یک پیروزی بزرگ بود.
آنها یک کار دیگر را به همراه این نسخه انجام دادند ، اگرچه این یک ویژگی سنتی زبان به خودی خود نیست. آنها روزلین کامپایلر را به عنوان یک سرویس آزاد کردند. کامپایلر C# اکنون در C# نوشته شده است ، و می توانید از کامپایلر به عنوان بخشی از تلاش های برنامه نویسی خود استفاده کنید.
C# نسخه 5. 0
اوت 2012 منتشر شد
C# نسخه 5. 0 ، منتشر شده با Visual Studio 2012 ، یک نسخه متمرکز از زبان بود. تقریباً تمام تلاش برای آن نسخه به یک مفهوم زبان پیشگام دیگر رسید: Async و Awite Model برای برنامه نویسی ناهمزمان. در اینجا لیست اصلی ویژگی ها آورده شده است:
ویژگی Caller Info به شما امکان می دهد تا به راحتی اطلاعات مربوط به زمینه ای را که در آن کار می کنید ، بدون توسل به یک تن کد بازتاب دیگ بخار بازیابی کنید. این کار در کارهای تشخیصی و ورود به سیستم کاربردهای زیادی دارد.
اما Async و منتظر ستاره های واقعی این نسخه هستند. هنگامی که این ویژگی ها در سال 2012 ظاهر شد ، C# بازی را دوباره با پخت ناهمزمان به زبان به عنوان یک شرکت کننده در درجه یک تغییر داد. اگر تا به حال با عملیات طولانی در حال اجرا و اجرای شبکه های تماس تلفنی برخورد کرده اید ، احتمالاً این ویژگی زبان را دوست داشته اید.
C# نسخه 4. 0
آوریل 2010 منتشر شد
C# نسخه 4. 0 ، منتشر شده با Visual Studio 2010 ، می توانست با وضعیت پیشگامانه نسخه 3. 0 زندگی سختی داشته باشد. این نسخه برخی از ویژگی های جدید جالب را معرفی کرد:
انواع بین المللی تعبیه شده درد استقرار ایجاد مجامع بین المللی COM را برای برنامه شما کاهش می دهد. کواریانس عمومی و مغایر به شما قدرت بیشتری برای استفاده از ژنرال ها می دهد ، اما آنها کمی دانشگاهی هستند و احتمالاً مورد استقبال چارچوب و نویسندگان کتابخانه قرار می گیرند. پارامترهای نامگذاری شده و اختیاری به شما امکان می دهد بسیاری از روش های اضافه بار را از بین ببرید و راحتی را ارائه دهید. اما هیچ یک از این ویژگی ها دقیقاً در حال تغییر پارادایم نیستند.
ویژگی اصلی معرفی کلمه کلیدی پویا بود. کلمه کلیدی پویا وارد C# نسخه 4. 0 امکان غلبه بر کامپایلر در تایپ زمان کامپایل است. با استفاده از کلمه کلیدی پویا ، می توانید سازه هایی شبیه به زبانهای تایپ شده پویا مانند JavaScript ایجاد کنید. شما می توانید یک Dynamic X = "A String" ایجاد کنید و سپس شش را به آن اضافه کنید ، و آن را به زمان اجرا واگذار کنید تا آنچه را که باید در آینده اتفاق بیفتد مرتب کنید.
اتصال پویا پتانسیل خطاها را به شما می دهد اما همچنین قدرت بزرگی در زبان است.
C# نسخه 3. 0
نوامبر 2007 منتشر شد
C# نسخه 3. 0 در اواخر سال 2007 به همراه Visual Studio 2008 آمد ، اگرچه قایق کامل از ویژگی های زبان در واقع با .net Framework نسخه 3. 5 همراه است. این نسخه تغییر عمده ای در رشد C#نشان داد. این C# را به عنوان یک زبان برنامه نویسی واقعاً قدرتمند تأسیس کرد. بیایید نگاهی به برخی از ویژگی های اصلی این نسخه بیندازیم:
در گذشته نگر ، بسیاری از این ویژگی ها هم اجتناب ناپذیر و هم از هم جدا به نظر می رسند. همه آنها از لحاظ استراتژیک در کنار هم قرار می گیرند. تصور می شود که ویژگی قاتل نسخه C# عبارت پرس و جو است که به عنوان پرس و جو یکپارچه زبان (LINQ) نیز شناخته می شود.
یک دیدگاه ظریف تر درختان بیان ، عبارات لامبدا و انواع ناشناس را به عنوان پایه ای که LINQ بر روی آن ساخته شده است ، بررسی می کند. اما ، در هر صورت ، C# 3. 0 یک مفهوم انقلابی ارائه داد. C# 3. 0 شروع به ایجاد زمینه برای تبدیل C# به یک زبان ترکیبی شی گرا / کاربردی کرده بود.
به طور خاص ، اکنون می توانید از جمله موارد دیگر ، نمایش داده های اعلامی به سبک SQL و به سبک SQL بنویسید. به جای نوشتن یک حلقه برای محاسبه میانگین لیست اعداد صحیح ، اکنون می توانید این کار را به سادگی به عنوان لیست انجام دهید. ترکیبی از عبارات پرس و جو و روشهای پسوند ، لیستی از اعداد صحیح را کاملاً باهوش تر ساخت.
C# نسخه 2. 0
نوامبر 2005 منتشر شد
بیایید نگاهی به برخی از ویژگی های اصلی C# 2. 0 ، منتشر شده در سال 2005 ، به همراه Visual Studio 2005 بیندازیم:
سایر ویژگی های C# 2. 0 قابلیت های اضافه شده به ویژگی های موجود:
در حالی که C# ممکن است به عنوان یک زبان عمومی شیء گرا (OO) شروع شده باشد ، C# نسخه 2. 0 با عجله آن را تغییر داد. با وجود ژنرال ها ، انواع و روش ها می توانند در یک نوع دلخواه کار کنند در حالی که هنوز هم از نوع ایمنی استفاده می کنند. به عنوان مثال ، داشتن یک لیست به شما امکان می دهد لیست یا لیست داشته باشید و عملیات ایمن نوع را در آن رشته ها یا عدد صحیح انجام دهید در حالی که از طریق آنها تکرار می شوید. استفاده از Generics بهتر از ایجاد نوع لیستی است که از ArrayList یا ریخته گری از شیء برای هر عملیات حاصل می شود.
C# نسخه 2. 0 تکرار را به همراه آورد. به بیان دقیق ، تکرار کننده ها به شما امکان می دهند تمام موارد موجود در یک لیست (یا انواع دیگر قابل توجه) را با یک حلقه foreach بررسی کنید. داشتن تکرارها به عنوان بخشی از درجه یک از زبان به طرز چشمگیری خوانایی زبان و توانایی مردم در استدلال در مورد کد را افزایش می دهد.
و با این حال ، C# همچنان با جاوا کمی بازی را بازی کرد. جاوا قبلاً نسخه هایی را منتشر کرده بود که شامل ژنرال ها و تکرارها بود. اما به زودی این تغییر می کند که زبانها از هم جدا می شوند.
C# نسخه 1. 2
آوریل 2003 منتشر شد
C# نسخه 1. 2 با Visual Studio .net 2003 ارسال شده است. این شامل چند پیشرفت کوچک به زبان بود. نکته قابل توجه این است که با شروع این نسخه ، کد ایجاد شده در یک حلقه foreach به نام Dispose on Ienumerator هنگامی که آن ienumerator idisposable پیاده سازی کرد.
C# نسخه 1. 0
ژانویه 2002 منتشر شد
وقتی به عقب برگردید و نگاه کنید ، C# نسخه 1. 0 ، منتشر شده با Visual Studio .net 2002 ، بسیار شبیه جاوا بود. به عنوان بخشی از اهداف طراحی شده خود برای ECMA ، به دنبال این بود که "یک زبان ساده ، مدرن و با هدف اصلی شیء" باشد. در آن زمان ، به نظر می رسید که جاوا به معنای دستیابی به اهداف اولیه طراحی است.
اما اگر اکنون به C# 1. 0 نگاه کنید ، خودتان را کمی سرگیجه می بینید. این فاقد قابلیت های داخلی Async و برخی از قابلیت های نرم و صاف در مورد ژنرال هایی است که شما از آن استفاده می کنید. در واقع ، در کل فاقد ژنرال ها بود. و linq؟هنوز در دسترس نیستاین اضافات چند سال طول می کشد تا بیرون بیاید.
C# نسخه 1. 0 در مقایسه با امروز از ویژگی های محروم به نظر می رسید. خود را پیدا می کنید که در حال نوشتن کد Verbose هستید. اما با این حال ، شما باید از جایی شروع کنید. C# نسخه 1. 0 یک جایگزین مناسب برای جاوا در سیستم عامل ویندوز بود.
-
- نقطه ورود به یک برنامه می تواند دارای اصلاح کننده ASYNC باشد.
- در صورت استنباط نوع هدف ، می توانید از عبارات تحت اللفظی پیش فرض در عبارات پیش فرض استفاده کنید.
- نام عناصر Tuple را می توان در بسیاری از موارد از ابتدای کار Tuple استنباط کرد.
- می توانید از عبارات مربوط به الگوی بر روی متغیرهایی که نوع آنها یک پارامتر نوع عمومی است استفاده کنید.
- فهرست سازهای اولیه
- منتظر گرفتن/در نهایت بلوک
- مقادیر پیش فرض برای خصوصیات فقط گیرنده
- دسترسی جداگانه گیرنده/تنظیم کننده
- تبدیل گروه روش (نمایندگان)
- کلاسهای ایستا
- استنباط نمایندگی
مبانی اسکالپینگ...
ما را در سایت مبانی اسکالپینگ دنبال می کنید
برچسب :
نویسنده : سید مهدی گلابی
بازدید : <-PostHit->
تاريخ : جمعه
29 ارديبهشت
1402 ساعت: 15:24