زبان برنامه نویسی سی شارپ

ویژگی زبان برنامه نویسی سی شارپ

C # (تلفظ “See Sharp”) یک زبان برنامه نویسی مدرن، شی گرا و زبان برنامه نویسی سی شارپ ایمن از نوع است. C# توسعه دهندگان را قادر می سازد تا انواع بسیاری از برنامه های کاربردی امن و قوی را که در دات نت اجرا می شوند بسازند. C# ریشه در خانواده زبان‌های C دارد و بلافاصله برای برنامه‌نویسان C، C ++، جاوا و جاوا اسکریپت آشنا خواهد شد. این زبان برنامه نویسی سی شارپ تور مروری بر اجزای اصلی زبان در C # 8 و پیش زبان برنامه نویسی سی شارپ از آن ارائه می دهد.

اگر می خواهید زبان را از طریق مثال های تعاملی کشف کنید، مقدمه زبان برنامه نویسی سی شارپ آموزش های C # را امتحان کنید.C# یک زبان برنامه نویسی شی گرا و جزء گرا است. C# ساختارهای زبانی را برای پشتیبانی مستقیم از این مفاهیم ارائه می‌کند و C# را به زبانی طبیعی برای ایجاد و استفاده از اجزای نرم‌افزار تبدیل می‌کند. C# از زمان پیدایش خود ویژگی هایی را برای پشتیبانی از بارهای کاری جدید و شیوه های طراحی نرم افزار نوظهور اضافه کرده است. در هسته خود، C # یک زبان شی گرا است. شما انواع و رفتار آنها را تعریف می کنید.

پیشنهاد می کنیم به مشاهده مقاله آموزش برنامه نویسی سی شارپ بپردازید.

 

زبان برنامه نویسی سی شارپ

چندین ویژگی C # به ایجاد برنامه های کاربردی قوی و بادوام کمک می کند. جمع آوری زباله به زبان برنامه نویسی سی شارپ طور خودکار حافظه اشغال شده توسط اشیاء استفاده نشده غیرقابل دسترسی را بازیابی می کند. انواع Nullable در برابر متغیرهایی که به اشیاء اختصاص داده شده اشاره نمی کنند محافظت می کنند. مدیریت استثنا یک رویکرد ساختاریافته و قابل توسعه برای تشخیص و بازیابی خطا ارائه می دهد. عبارات لامبدا از تکنیک های برنامه نویسی تابعی پشتیبانی می کنند.

دستور زبان یکپارچه Query (LINQ) یک الگوی مشترک برای کار با داده ها از هر منبعی ایجاد می کند. پشتیبانی زبان برنامه نویسی سی شارپ زبان برای عملیات ناهمزمان، نحوی را برای ساختن سیستم های توزیع شده فراهم می کند. C# دارای یک سیستم نوع یکپارچه است. همه انواع C#، از جمله انواع اولیه مانند int و double، از یک نوع شی ریشه منفرد به ارث می‌برند. همه انواع دارای مجموعه ای از عملیات مشترک هستند. ارزش‌ها از هر نوع را می‌توان به شیوه‌ای ثابت ذخیره، حمل و کار کرد.

پیشنهاد می کنیم به مشاهده مقاله یادگیری زبان برنامه نویسی سی شارپ بپردازید.

علاوه بر این، C # از هر دو نوع مرجع تعریف شده توسط کاربر و انواع مقادیر پشتیبانی می کند. C# امکان زبان برنامه نویسی سی شارپ تخصیص پویا اشیاء و ذخیره سازی درون خطی ساختارهای سبک را فراهم می کند. C# از روش‌ها و انواع عمومی پشتیبانی می‌کند که ایمنی و عملکرد را افزایش می‌دهد. C # تکرارکننده‌هایی را ارائه می‌کند که پیاده‌کننده‌های کلاس‌های مجموعه را قادر می‌سازد تا رفتارهای سفارشی را برای کد مشتری تعریف کنند.

C# بر نسخه‌سازی تأکید می‌کند تا اطمینان حاصل کند که برنامه‌ها و کتابخانه‌ها می‌توانند در طول زمان زبان برنامه نویسی سی شارپ به شیوه‌ای سازگار تکامل یابند. جنبه‌هایی از طراحی C# که مستقیماً تحت‌تاثیر ملاحظات نسخه‌سازی قرار گرفته‌اند شامل اصلاح‌کننده‌های مجازی و نادیده‌گیر مجزا، قوانین برای وضوح روش اضافه بار و پشتیبانی از اعلان‌های اعضای رابط صریح است.معماری دات نت برنامه های C# بر روی دات نت، یک سیستم اجرای مجازی به نام زمان اجرا زبان مشترک (CLR) و مجموعه ای از کتابخانه های کلاس اجرا می شوند.

CLR پیاده سازی زیرساخت زبان مشترک (CLI) توسط مایکروسافت است که یک استاندارد زبان برنامه نویسی سی شارپ بین المللی است. CLI پایه ای برای ایجاد محیط های اجرا و توسعه است که در آن زبان ها و کتابخانه ها به طور یکپارچه با هم کار می کنند.کد منبع نوشته شده در C # به یک زبان میانی (IL) که با مشخصات CLI مطابقت دارد، کامپایل می شود. کد IL و منابع، مانند بیت مپ ها و رشته ها، در یک اسمبلی، معمولا با پسوند .dll ذخیره می شوند. یک اسمبلی حاوی مانیفست است که اطلاعاتی در مورد انواع، نسخه و فرهنگ مجموعه ارائه می دهد.

هنگامی که برنامه C # اجرا می شود، اسمبلی در CLR بارگذاری می شود. CLR کامپایل Just-In-Time (JIT) را برای زبان برنامه نویسی سی شارپ تبدیل کد IL به دستورالعمل های ماشین بومی انجام می دهد. CLR سایر خدمات مربوط به جمع‌آوری خودکار زباله، مدیریت استثنا و مدیریت منابع را ارائه می‌کند. کدی که توسط CLR اجرا می شود گاهی اوقات به عنوان “کد مدیریت شده” نامیده می شود. “کد مدیریت نشده” به زبان ماشین مادری که یک پلت فرم خاص را هدف قرار می دهد، کامپایل می شود.

قابلیت همکاری زبان یکی از ویژگی های کلیدی دات نت است. کد IL تولید شده زبان برنامه نویسی سی شارپ زبان برنامه نویسی سی شارپ توسط کامپایلر C # با مشخصات نوع رایج (CTS) مطابقت دارد. کد IL تولید شده از C# می‌تواند با کدهایی که از نسخه‌های NET F #، Visual Basic، C ++ تولید شده‌اند، تعامل داشته باشد. بیش از 20 زبان دیگر سازگار با CTS وجود دارد. یک اسمبلی ممکن است شامل چندین ماژول باشد که به زبان‌های مختلف دات‌نت نوشته شده‌اند. انواع می توانند به یکدیگر ارجاع دهند که گویی به یک زبان نوشته شده اند.

علاوه بر خدمات زمان اجرا، دات نت شامل کتابخانه های گسترده ای نیز می شود. این کتابخانه ها بارهای زبان برنامه نویسی سی شارپ کاری مختلف را پشتیبانی می کنند. آنها در فضاهای نامی سازماندهی شده اند که طیف گسترده ای از عملکردهای مفید را ارائه می دهند. این کتابخانه‌ها شامل همه چیز از ورودی و خروجی فایل گرفته تا دستکاری رشته‌ها تا تجزیه XML، چارچوب‌های برنامه کاربردی وب و کنترل‌های Windows Forms هستند. برنامه معمولی C# به طور گسترده از کتابخانه کلاس دات نت برای انجام کارهای معمول “لوله کشی” استفاده می کند.

برای اطلاعات بیشتر در مورد دات نت، به نمای کلی دات نت مراجعه کنید.سلام دنیا برنامه “Hello, World” به طور زبان برنامه نویسی سی شارپ سنتی برای معرفی یک زبان برنامه نویسی استفاده می شود. اینجا به زبان #C است:amespace فضاهای نام یک وسیله سلسله مراتبی برای سازماندهی برنامه ها و کتابخانه های C# فراهم می کنند. فضاهای نام شامل انواع و فضاهای نام دیگر هستند – به عنوان مثال، فضای نام سیستم شامل تعدادی از انواع، مانند کلاس Console اشاره شده در برنامه، و تعدادی فضای نام دیگر، مانند IO و Collections است.

یک دستورالعمل استفاده که به یک فضای نام معین ارجاع می دهد، استفاده غیرمجاز از انواع اعضای آن زبان برنامه نویسی سی شارپ فضای نام را امکان پذیر می کند. به دلیل استفاده از دستورالعمل، برنامه می تواند از Console.WriteLine به عنوان مخفف System.Console.WriteLine استفاده کند.کلاس Hello اعلام شده توسط برنامه “Hello, World” دارای یک عضو واحد است، متدی به نام Main. متد Main با اصلاح کننده استاتیک اعلام می شود.

پیشنهاد می کنیم به مشاهده مقاله آموزش صفر تا صد سی شارپ رایگان بپردازید.

در حالی که روش های نمونه می توانند با استفاده از کلمه کلیدی this به یک نمونه شی محصور کننده زبان برنامه نویسی سی شارپ خاص ارجاع دهند، روش های استاتیک بدون ارجاع به یک شی خاص عمل می کنند. طبق قرارداد، یک روش استاتیک به نام Main به عنوان نقطه ورودی یک برنامه C# عمل می کند.خروجی برنامه با متد WriteLine از کلاس Console در فضای نام System تولید می شود. این کلاس توسط کتابخانه های کلاس استاندارد ارائه می شود که به طور پیش فرض به طور خودکار توسط کامپایلر ارجاع داده می شود.

انواع و متغیرها.یک نوع ساختار و رفتار هر داده ای را در C# تعریف می کند. اعلان یک نوع ممکن زبان برنامه نویسی سی شارپ است شامل اعضای آن، نوع پایه، رابط هایی باشد که پیاده سازی می کند و عملیات مجاز برای آن نوع. متغیر برچسبی است که به یک نمونه از یک نوع خاص اشاره دارد.دو نوع نوع در C# وجود دارد: انواع مقدار و انواع مرجع. متغیرهای انواع ارزش مستقیماً داده های خود را در بر می گیرند. متغیرهای انواع مرجع، ارجاعات به داده های خود را ذخیره می کنند، که دومی به عنوان اشیا شناخته می شود.

با انواع مرجع، این امکان وجود دارد که دو متغیر به یک شی ارجاع دهند و ممکن است عملیات روی یک زبان برنامه نویسی سی شارپ متغیر بر شیء ارجاع شده توسط متغیر دیگر تأثیر بگذارد. با انواع مقادیر، متغیرها هر کدام کپی مخصوص به خود از داده ها دارند، و نمی توان عملیات روی دیگری را تحت تأثیر قرار داد (به جز متغیرهای پارامتر ref و out).شناسه یک نام متغیر است. شناسه دنباله ای از کاراکترهای یونیکد بدون هیچ فضای خالی است. یک شناسه ممکن است یک کلمه C# رزرو شده باشد، اگر با پیشوند @ باشد.

استفاده از یک کلمه رزرو شده به عنوان یک شناسه می تواند هنگام تعامل با زبان های دیگر مفید باشد.انواع زبان برنامه نویسی سی شارپ مقادیر C# بیشتر به انواع ساده، انواع enum، انواع ساختار، انواع مقادیر nullable و انواع مقادیر تاپلی تقسیم می شوند. انواع مرجع C# بیشتر به انواع کلاس، انواع رابط، انواع آرایه و انواع نمایندگی تقسیم می شوند.طرح کلی زیر نمای کلی سیستم نوع C# را ارائه می دهد.برنامه های C# از اعلان های نوع برای ایجاد انواع جدید استفاده می کنند.

یک اعلان نوع نام و اعضای نوع جدید را مشخص می کند. شش دسته از انواع C# قابل تعریف زبان برنامه نویسی سی شارپ توسط کاربر هستند: انواع کلاس، انواع ساختار، انواع رابط، انواع enum، انواع نمایندگی و انواع مقادیر تاپل. همچنین می‌توانید انواع رکورد، ساختار رکورد یا کلاس رکورد را نیز اعلام کنید. انواع رکورد دارای اعضای سنتز شده توسط کامپایلر هستند. شما از رکوردها در درجه اول برای ذخیره مقادیر، با حداقل رفتار مرتبط استفاده می کنید.

یک نوع کلاس، ساختار داده ای را تعریف می کند که شامل اعضای داده (فیلدها) و اعضای تابع (روش ها، زبان برنامه نویسی سی شارپ ویژگی ها و سایر موارد) است. انواع کلاس ها از وراثت منفرد و چندشکلی پشتیبانی می کنند، مکانیسم هایی که به موجب آن کلاس های مشتق شده می توانند کلاس های پایه را گسترش داده و تخصصی کنند.نوع ساختار شبیه به نوع کلاس است زیرا ساختاری را با اعضای داده و اعضای تابع نشان می دهد. با این حال، برخلاف کلاس‌ها، ساختارها انواع ارزش هستند و معمولاً به تخصیص پشته نیاز ندارند.

انواع ساختار از وراثت مشخص شده توسط کاربر پشتیبانی نمی‌کنند، و همه انواع ساختار به طور ضمنی زبان برنامه نویسی سی شارپ از شی نوع به ارث می‌برند.یک نوع واسط قرارداد را به عنوان مجموعه ای نامگذاری شده از اعضای عمومی تعریف می کندers. یک کلاس یا ساختاری که یک اینترفیس را پیاده سازی می کند باید پیاده سازی هایی از اعضای رابط را ارائه دهد. یک اینترفیس ممکن است از چندین رابط پایه به ارث ببرد و یک کلاس یا ساختار ممکن است چندین رابط را پیاده سازی کند.

پیشنهاد می کنیم به مشاهده مقاله آموزش سی شارپ به زبان ساده بپردازید.

یک نوع نماینده، ارجاعاتی به روش‌هایی با فهرست پارامتر و نوع بازگشتی خاص را نشان می‌دهد. Delegates این امکان زبان برنامه نویسی سی شارپ را فراهم می کند که روش ها را به عنوان موجودیت هایی که می توان به متغیرها نسبت داد و به عنوان پارامتر ارسال کرد، در نظر گرفت. Delegates مشابه انواع تابع ارائه شده توسط زبان های تابعی هستند. آنها همچنین شبیه به مفهوم نشانگرهای تابع موجود در برخی از زبان های دیگر هستند. بر خلاف اشاره گرهای تابع، نمایندگی ها شی گرا و ایمن هستند.

انواع کلاس، ساختار، رابط، و نوع نمایندگی همگی از کلیات پشتیبانی می‌کنند که به موجب آن می‌توان زبان برنامه نویسی سی شارپ آنها را با انواع دیگر پارامتر کرد.C# از هر نوع آرایه های تک بعدی و چند بعدی پشتیبانی می کند. برخلاف انواع ذکر شده در بالا، انواع آرایه ها قبل از استفاده لازم نیست اعلام شوند. در عوض، انواع آرایه ها با دنبال کردن یک نام نوع با براکت مربع ساخته می شوند. به عنوان مثال، int [] یک آرایه تک بعدی از int، int [،] یک آرایه دو بعدی از int، و int [] [] یک آرایه تک بعدی از آرایه های تک بعدی یا یک “ناهموار” است. “آرایه، از بین.

زبان برنامه نویسی سی شارپ چیست؟

انواع Nullable نیاز به تعریف جداگانه ای ندارند. برای هر نوع T غیر قابل تهی، یک نوع تهی T ? مربوطه زبان برنامه نویسی سی شارپ وجود دارد که می تواند مقدار اضافی، null را در خود داشته باشد. به عنوان مثال، بین المللی؟ آیا نوعی است که می تواند هر عدد صحیح 32 بیتی یا مقدار null و رشته را در خود جای دهد؟ نوعی است که می تواند هر رشته یا مقدار null را نگه دارد.سیستم نوع C# به گونه ای یکپارچه است که مقداری از هر نوع را می توان به عنوان یک شی در نظر گرفت.

هر نوع در C# به طور مستقیم یا غیرمستقیم از نوع کلاس شی نشأت می‌گیرد و شیء کلاس پایه نهایی زبان برنامه نویسی سی شارپ همه انواع است. مقادیر انواع مرجع به سادگی با مشاهده مقادیر به عنوان شی نوع به عنوان اشیا در نظر گرفته می شوند. مقادیر انواع ارزش با انجام عملیات بوکس و جعبه گشایی به عنوان اشیا در نظر گرفته می شوند. در مثال زیر، یک مقدار int به آبجکت و دوباره به int تبدیل می‌شود.هنگامی که یک مقدار از یک نوع مقدار به یک مرجع شی اختصاص داده می شود، یک “جعبه” برای نگهداری مقدار اختصاص داده می شود.

آن کادر نمونه ای از نوع مرجع است و مقدار در آن کادر کپی می شود. برعکس، زمانی که یک شی ارجاع زبان برنامه نویسی سی شارپ به یک نوع مقدار داده می‌شود، بررسی می‌شود که شی ارجاع‌شده جعبه‌ای از نوع ارزش صحیح باشد. اگر چک با موفقیت انجام شود، مقدار موجود در کادر به نوع مقدار کپی می شود.سیستم نوع یکپارچه C# به طور موثر به این معنی است که انواع مقادیر به عنوان مرجع شی “در صورت تقاضا” در نظر گرفته می شوند.

به دلیل یکپارچگی، کتابخانه‌های همه منظوره که از نوع شی استفاده می‌کنند را می‌توان با همه انواعی زبان برنامه نویسی سی شارپ که از شی مشتق می‌شوند، از جمله انواع مرجع و انواع مقدار، استفاده کرد.انواع مختلفی از متغیرها در #C وجود دارد، از جمله فیلدها، عناصر آرایه، متغیرهای محلی و پارامترها. متغیرها مکان های ذخیره سازی را نشان می دهند. هر متغیر دارای نوعی است که تعیین می کند چه مقادیری را می توان در متغیر ذخیره کرد، همانطور که در زیر نشان داده شده است.

مفاهیم کلیدی سازمانی در سی # برنامه ها، فضاهای نام، انواع، اعضا و مجموعه ها هستند. برنامه ها زبان برنامه نویسی سی شارپ انواعی را اعلام می کنند که شامل اعضا هستند و می توانند در فضای نام سازماندهی شوند. کلاس ها، ساختارها و رابط ها نمونه هایی از انواع هستند. فیلدها، روش‌ها، ویژگی‌ها و رویدادها نمونه‌هایی از اعضا هستند. وقتی برنامه های C# کامپایل می شوند، به صورت فیزیکی در اسمبلی ها بسته بندی می شوند. اسمبلی ها معمولاً دارای پسوند فایل .exe یا .dll هستند، بسته به اینکه به ترتیب برنامه ها یا کتابخانه ها را اجرا می کنند.

نام کاملاً واجد شرایط این کلاس Acme.Collections.Stack است. کلاس شامل چندین زبان برنامه نویسی سی شارپ عضو است: یک فیلد به نام _top، دو متد به نام‌های Push و Pop، و یک کلاس تودرتو به نام Entry. کلاس Entry همچنین شامل سه عضو است: یک ویژگی به نام Next، یک ویژگی به نام Data و یک سازنده. Stack یک کلاس عمومی است. این یک پارامتر نوع دارد، T که هنگام استفاده با یک نوع بتنی جایگزین می شود.پشته یک مجموعه “اولین در – آخرین خروج” (FILO) است.

پیشنهاد می کنیم به مشاهده مقاله زبان سی شارپ یا جاوا بپردازید.

عناصر جدید به بالای پشته اضافه می شوند. هنگامی که یک عنصر حذف می شود، از بالای پشته حذف زبان برنامه نویسی سی شارپ می شود. مثال قبلی نوع Stack را که فضای ذخیره سازی و رفتار یک پشته را تعریف می کند، اعلام می کند. می توانید متغیری را که به نمونه ای از نوع Stack برای استفاده از آن عملکرد اشاره دارد، اعلام کنید.مجموعه ها حاوی کدهای اجرایی در قالب دستورالعمل های زبان میانی (IL) و اطلاعات نمادین در قالب ابرداده هستند. قبل از اجرا، کامپایلر Just-In-Time (JIT) زمان اجرای زبان مشترک دات نت کد IL را در یک اسمبلی به کد مخصوص پردازنده تبدیل می کند.

از آنجایی که یک اسمبلی یک واحد عملکردی خود توصیفی است که هم کد و هم ابرداده زبان برنامه نویسی سی شارپ را شامل می شود، نیازی به #include دستورالعمل ها و فایل های هدر در C # نیست. انواع عمومی و اعضای موجود در یک اسمبلی خاص به سادگی با ارجاع به آن اسمبلی در هنگام کامپایل کردن برنامه در یک برنامه #C در دسترس هستند. به عنوان مثال، این برنامه از کلاس Acme.Collections.Stack از مجموعه acme.dll استفاده می کند.برای کامپایل این برنامه، باید به اسمبلی حاوی کلاس پشته تعریف شده در مثال قبلی ارجاع دهید.

برنامه های C# را می توان در چندین فایل منبع ذخیره کرد. هنگامی که یک برنامه C # کامپایل می شود، همه زبان برنامه نویسی سی شارپ فایل های منبع با هم پردازش می شوند و فایل های منبع می توانند آزادانه به یکدیگر ارجاع دهند. از نظر مفهومی، انگار همه فایل‌های منبع قبل از پردازش در یک فایل بزرگ ادغام شده‌اند. اعلان‌های فوروارد هرگز در C # مورد نیاز نیستند، زیرا، به استثنای معدود موارد، ترتیب اعلان‌ها ناچیز است. C# یک فایل منبع را به اعلام تنها یک نوع عمومی محدود نمی کند و همچنین نیازی به مطابقت نام فایل منبع با نوع اعلام شده در فایل منبع ندارد.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.