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

صفر تا صد برنامه نویسی کودکان و نوجوانان

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

۶۷۸ بازديد

 

تفاوت بین جنریکهای C # و سایر کاربردها

تفاوت های قابل توجهی بین الگوهای C ++ و ژنریک های C # وجود دارد. ژنریکهای C # به صورت IL وارد می شوند ، که باعث می شود در زمان اجرا به طور هوشمندانه نوع خاصی متناظر با آن ایجاد شود و فقط نوع خاصی برای انواع مرجع ایجاد شود ؛ الگوهای C ++ در واقع ماکروهای گسترش کد هستند ، که نوع خاصی را برای هر نوع ایجاد می کنند پارامتر الگو. بنابراین ، هنگامی که کامپایلر C ++ با الگویی روبرو می شود (مانند یک عدد صحیح Stack) ، کد الگو را به کلاس Stack گسترش می دهد و عدد صحیح را به عنوان نوع کلاس خود در بر می گیرد. صرف نظر از اینکه پارامتر type از نوع مقدار باشد یا از نوع مرجع ، اگر پیوند دهنده به طور خاص برای کاهش سرعت گسترش کد طراحی نشده باشد ، کامپایلر C ++ هر بار کلاس ویژه ای ایجاد می کند ، در نتیجه سرعت گسترش کد قابل توجهی بیشتر از استفاده از ژنریک های سی شارپ

 

علاوه بر این ، الگوهای C ++ نمی توانند محدودیت ها را تعریف کنند. الگوهای C ++ فقط می توانند محدودیت ها را با استفاده از یک عضو (که ممکن است به یک پارامتر نوع تعلق داشته باشند یا نداشته باشند) به طور ضمنی تعریف کنند. اگر عضو در پارامتر type که در آخر به کلاس generic منتقل می شود وجود داشته باشد ، برنامه به طور عادی اجرا می شود. در غیر این صورت ، برنامه از کار می افتد و ممکن است یک پیام خطای پنهان را بازگرداند. از آنجا که ژنریک های C # می توانند محدودیت ها را اعلام کنند و انواع دقیق آنها وجود دارد ، این خطاهای احتمالی وجود ندارد.

 

اکنون ، Sun Microsystems® محصولات عامیانه دیگری را به نسخه جدید زبان جاوا (نام رمز "Tiger") اضافه کرده است. پیاده سازی انتخاب شده توسط Sun نیازی به اصلاحات در ماشین مجازی جاوا ندارد. بنابراین ، سان با این مشکل روبرو شد که چگونه مواد عامیانه را در ماشین های مجازی اصلاح نشده پیاده سازی کند.

 

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

 

پشتیبانی عمومی به زبانهای دیگر

هدف مایکروسافت پشتیبانی از استفاده و ایجاد مواد عادی در Visual J # (TM) ، Visual C ++ و Visual Basic است. اگرچه زبانهای مختلف دیر یا زود این ویژگی را پیاده سازی می کنند ، اما هر سه زبان دیگر مایکروسافت شامل پشتیبانی از محصولات عمومی است. در همان زمان ، تیم C # سخت تلاش می کند تا توابع مربوطه را به زمان اجرای عمومی محصولات عمومی اضافه کند تا پایه ای برای پشتیبانی از چند زبان ایجاد کند. مایکروسافت از نزدیک با شرکای زبان شخص ثالث همکاری می کند تا از ایجاد و استفاده از محصولات عامیانه در زبانهای مبتنی بر NET اطمینان حاصل کند.

رویه تکراری

برنامه های تکراری زبانهایی هستند که بر اساس توابع مشابه در زبان تحقیق ساخته شده اند (مانند CLU ، Sather و Icon). به زبان ساده ، از طریق یک برنامه تکراری ، یک نوع می تواند به راحتی نحوه تکرار عناصر خود را در دستور foreach اعلام کند.

چرا به روشهای تکراری احتیاج داریم

حال ، اگر کلاسها نیاز به پشتیبانی از عملیات تکراری با استفاده از ساختار حلقه foreach دارند ، باید "الگوی شمارشگر" را پیاده سازی کنند. به عنوان مثال ، کامپایلر ساختار حلقه foreach را در سمت چپ به ساختار حلقه while را در سمت راست گسترش می دهد.

 

https://www.huaweicloud.com/articles/beefe5efa9007741f8659631b22001f8.html

یادگیری نکات اولیه گرامر

۱- بخش های مختلف هر زبان را بشناسید

basics of grammar

این ها همان انواع کلماتی هستند که زبان های خارجی را می سازند و تقریبا در همه زبان های انگلیسی، فرانسوی، آلمانی، عربی، ترکی و … مشترک هستند. منظورمان، اسم، فعل، قید، صفت، حروف اضافه، ضمیرها، پیشوندها و پسوندها هستند.

  • اسم ها: کلماتی هستند که یک عملی را در جمله انجام می دهند. مثل یک شخص، مکان، حیوان، چیز، مفهوم و… (که در هر زبانی ممکن است متفاوت باشند)
ارسال نظر آزاد است، اما اگر قبلا در فارسی بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.