کتاب The C# Type System (سیستم نوع سیشارپ) مفاهیم کلیدی و کاربردی زبان برنامهنویسی سیشارپ را توضیح داده و سیستم نوع یا Type System در این زبان را شرح داده است.
در ادامه مقدمهای از کتاب The C# Type System را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب The C# Type System:
طبق مشخصات زبان سیشارپ، «سیشارپ به عنوان یک زبان برنامهنویسی ساده، مدرن، همه منظوره و شیگرا در نظر گرفته شده است». سیشارپ ممکن است در ظاهر ساده به نظر برسد، اما حتی در اساسیترین ویژگیهایش اعماق پنهان دارد. نوع سیستم عنصر مرکزی سیشارپ است و پایهای است که همه برنامههای سیشارپ بر روی آن ساخته میشوند. این از اولین نسخههای سیشارپ صادق بوده است، و با تکامل زبان همچنان مرتبط خواهد بود.
سیستم تایپ سیشارپ گالری از جدیدترین ویژگیهای زبان نیست، و ما به جزئیات آخرین نسخه نمیپردازیم، زیرا سیشارپ دائماً در حال پیشرفت است. در عوض، ما بر روی پشتیبانی غنی زبان برای ایجاد انواع خود تمرکز میکنیم و بررسی میکنیم که چگونه میتوان از سیستم تایپ برای بهبود طرحهای خود و نوشتن برنامههای واضحتر، سادهتر و کارآمدتر استفاده کرد.
بسیاری از زبانها به کاربران اجازه میدهند تا انواع خود را تعریف کنند، اما سیشارپ از این جهت متفاوت است که تمایز واضحی بین کلاسها، که انواع مرجع هستند، و انواع ارزش قائل میشود. کلاسها انتخاب پیشفرض برای پیادهسازی طراحی در سیشارپ و مکانیزم همهمنظوره برای انواع سفارشی هستند، زیرا از تمام ویژگیهای شی گرا که سیشارپ ارائه میکند پشتیبانی میکنند.
در مقابل، انواع ارزشها بسیار تخصصیتر هستند، به همین دلیل است که اغلب اشتباه گرفته میشوند و به عنوان یک ویژگی پیشرفته که برای اکثر برنامهها نامربوط است، رد میشوند. درست است که انواع ارزش برای بسیاری از انواع سفارشی در یک برنامه کاربردی مناسب نیستند، و ممکن است در هر طراحی لازم نباشند، اما چندین مزیت دارند که اغلب نادیده گرفته میشوند.
با استفاده از مثالهای معمولی در دنیای واقعی، کتاب The C# Type System شما را در تعریف و پیادهسازی انواع ارزش بهطور مؤثر و کارآمد راهنمایی میکند تا با همه انواع دیگر در برنامههای شما با موفقیت کار کنند. به طور خاص موارد زیر را بررسی خواهیم کرد:
- چرا سیشارپ بین انواع ارزش و انواع مرجع تمایز قائل میشود و این در عمل به چه معناست
- آنچه که انواع ارزش را از نظر نحوی و معنایی متفاوت از انواع دیگر میکند
- چگونه ترکیب انواع ارزش میتواند کد شما را بهبود بخشد و به شما کمک کند طرحها را واضحتر بیان کنید
- کدام ویژگیهای انواع ارزش، فراتر از آنهایی که توسط زبان تعریف میشود، برای نقش آنها در یک برنامه کاربردی مهمتر است
- جایی که میتوانید از انواع ارزش برای افزایش عملکرد یک برنامه استفاده کنید
بیشتر بخوانید: کتاب C# 12 Pocket Reference
چه کسی باید کتاب The C# Type System را بخواند؟
اگر اصول C# را یاد گرفتهاید و میخواهید درک خود را از زبان گسترش دهید تا برنامهنویس بهتری شوید، این کتاب برای شما مناسب است. هیچ چیز در فصلهای بعدی بهویژه پیشرفته نیست، اما محتوا به شما کمک میکند تا برخی از ویژگیها، اصول و مفاهیم اساسی برنامهنویسی C# را درک کنید.
امیدوارم کتاب The C# Type System به شما این امکان را بدهد که فراتر از نوشتن برنامههای قابل اجرا با استفاده از نحو صحیح سیشارپ، به نوشتن برنامههای اصطلاحی و کارآمد سیشارپ که همکارانتان به راحتی میتوانند آن را درک کنند، بروید.
برای پیروی از مثالها، به تجربه ایجاد کلاسهای خود نیاز دارید. آشنایی با سازندهها، روشها و خواص؛ و درک اساسی از اینکه چگونه روشهای مجازی میتوانند توسط کلاسهای مشتق شده نادیده گرفته شوند.
برخی تمرینات با استثناها، هم در به کارگیری آنها و هم مدیریت آنها برای مدیریت خطاها نیز مفید خواهد بود. درک مکانیک تعریف انواع و روشهای عمومی، اگرچه ضروری نیست، اما مفید خواهد بود. به طور خاص، برخی از تجربههای استفاده از کلاسهای مجموعه عمومی ارائه شده توسط کتابخانه استاندارد به شما بینشی در مورد نحوه عملکرد ژنریک در سیشارپ میدهد.
سیستم نوع سیشارپ یک راهنمای مبتدی نیست و درباره نحوه کامپایل و اجرای کد شما بحث نمیکند، اما انتظار نمیرود که گوشههای تاریک زبان را بدانید. با این حال، منامیدوارم که برخی از بخشهای این کتاب باعث سرگرمی و شاید حتی شگفتزده کاربران پیشرفتهتر شود.
وقتی ویژگیها اساسی هستند، گاهی اوقات نسبت به آنها از خود راضی میشویم. با در نظر گرفتن این موضوع، بسیاری از فصلهای این کتاب شامل جزئیاتی است که برنامهنویسان باتجربه سیشارپ ممکن است مقدماتی را در نظر بگیرند. این موضوعات در نظر گرفته شدهاند تا زمینه را برای برخی از مفاهیم کمتر شناخته شده و وابسته به آنها فراهم کنند.
اگر بیشتر از آشنایی گذرا با کد سیشارپ یا تجربه با زبانهای مبتنی بر شی دیگری مانند جاوا یا سی پلاس پلاس دارید، امیدوارم که مثالها و توضیحات اینجا به شما کمک کند تا نحو و معنای سیشارپ را بهتر درک کنید و بهتر متوجه شوید که چرا سیشارپ است. زبان آن شده است.
کتاب The C# Type System تمام جنبههای برنامهنویسی سیشارپ را پوشش نمیدهد. تمرکز عمداً بر تعاملات بین انواع ارزش و انواع مرجع است. در آن بحث، ما به سراغ ژنریکهای C#، مجموعهها، پرس و جوی یکپارچه زبان (LINQ) و threading خواهیم رفت، اما فقط به صورت سطحی. ما در مورد کد ناامن یا نشانگرهای C# بحث نمیکنیم. (در واقع، یک اشاره به نشانگرهای مدیریت شده وجود دارد. در غیر این صورت، ما مطمئن هستیم. )
ما نحوه ایجاد سرویسهای وب، تعامل با پایگاههای داده یا نوشتن برنامههای توزیعشده برای استقرار به عنوان برنامههای ابری یا میکروسرویس را پوشش نمیدهیم، اما تکنیکها و اصول زیربنایی سیشارپ ارائهشده به بهبود برنامههایی که برای آن دامنهها و سایرین ایجاد میکنید کمک میکند.
اگر از شما پرسیده شده یا از شما پرسیده شده است که چه زمانی یک نوع ارزش انتخاب بهتری نسبت به نوع مرجع در یک برنامه C# است و متوجه شدهاید که نمیتوانید پاسخ رضایت بخشی بدهید، باید این کتاب را مفید بدانید.
سازمان و الزامات
کتاب The C# Type System در هشت فصل سازماندهی شده است که هر فصل جنبه متفاوتی از انواع ارزش را در عمل ارائه میکند:
فصل 1 کتاب The C# Type System: استفاده حداکثری از سیستم نوع اهمیت انواع مقادیر تعریف شده توسط کاربر و اینکه چگونه معرفی انواع ساده در یک برنامه کاربردی میتواند خواندن و درک کد را آسانتر کند، بررسی میکند. اهمیت نامهای دقیق، مزایای کپسولهسازی رفتار خاص برنامهها، و راههایی برای ساختن انواع خود بصری و ساده برای استفاده را پوشش میدهد.
فصل 2 کتاب The C# Type System: ارزش و انواع مرجع به این میپردازد که چرا سیشارپ هر دو نوع مرجع و انواع ارزش دارد و آنها را با جزئیات مقایسه میکند. ما در نظر میگیریم که چگونه انواع مختلفاشیاء از حافظه استفاده میکنند، چه معنایی برای طول عمر آنها دارد و چگونه تفاوت بین انواع بر ساخت، برابری و کپی کردن تأثیر میگذارد. ما انواع مقادیر nullable را بررسی میکنیم و آنها را با ویژگی نوع مرجع جدیدتر مقایسه میکنیم.
فصل 3 کتاب The C# Type System: پارامترهای مرجع و ارزش چهار نوع پارامتر متد و نحوه ارسال آرگومانها به آنها را بررسی میکند، همچنین اینکه چگونه رفتار ارسال بین انواع مقدار و انواع مرجع متفاوت است. ما بین ارسال یک متغیر نوع مرجع و ارسال یک آرگومان با مرجع تمایز قائل میشویم و چگونگی ارتباط آن با تغییرپذیری و عوارض جانبی را بررسی میکنیم. ما همچنین نحوه عبور نمونههای نوع مقدار را با ارجاع غیرقابل تغییر برای بهینهسازی عملکرد در نظر میگیریم.
فصل 4 کتاب The C# Type System: کپی ضمنی و صریح درباره چگونگی کپی شدن مقادیر در یک برنامه و اینکه چگونه تفاوت در رفتار کپی بین انواع مقادیر و انواع مرجع میتواند پیامدهای ناخواستهای در کد ما داشته باشد، بحث میکند. به ویژه، ما بین متغیرها و مقادیر تمایز قائل میشویم و بررسی میکنیم که چگونه تغییرناپذیر کردن انواع مقادیر میتواند به جلوگیری از برخی خطاهای رایج مرتبط با کپی کمک کند. ما همچنین به دنبال راههایی برای کاهش ناکارآمدیهای بالقوهای هستیم که کپی کردن میتواند ایجاد کند.
فصل 5 کتاب The C# Type System: انواع برابری روشهای مختلفی را که میتوان مقادیر را برای برابری با هم مقایسه کرد و آنچه در طی این مقایسهها در زیر پوشش اتفاق میافتد را پوشش میدهد. پیادهسازی مقایسههای برابری مبتنی بر ارزش یک منبع رایج خطا است، بنابراین نحوه انجام صحیح و ایمن این کار و همچنین نحوه استفاده از امکانات ارائه شده توسط کامپایلر برای این منظور را توضیح خواهیم داد.
فصل 6 کتاب The C# Type System: ماهیت ارزشها ویژگیها و نقشهای انواع مختلف در یک برنامه کاربردی را مشخص میکند و اینکه چگونه نقش یک نوع ارزش چیزی بیش از یک روش مناسب برای ذخیره دادهها است. ما بررسی میکنیم که معنیشناسی ارزش به چه معناست و چه چیزی یک شی را کاندیدای مناسبی برای یک نوع ارزش میکند. ما همچنین اهمیت ترتیباشیاء را در نظر میگیریم و بین برابری و هم ارزی تمایز قائل میشویم.
فصل 7 کتاب The C# Type System: انواع ارزش و چندشکلی به بررسی این موضوع میپردازد که چرا وراثت شکل مناسبی از چندشکلی برای انواع ارزش نیست، و از طریق مثالی برای نشان دادن مشکلاتی که ممکن است ایجاد شود کار میکند. ما به تفصیل به تفاوت بین طبقهبندی فرعی و زیرگروهی نگاه میکنیم و در مورد اینکه چگونه انواع دیگر چندشکلی برای کار با مقادیر مناسبتر هستند، بحث میکنیم.
فصل 8 کتاب The C# Type System: عملکرد و کارایی چگونگی تأثیر انواع مختلف بر عملکرد یک برنامه کاربردی و چگونگی اندازهگیری دقیق عملکرد برای تصمیمگیری مبتنی بر شواهد را در نظر میگیرد. این فصل به این موضوع میپردازد که چگونه پذیرش رفتار پیشفرض میتواند بر عملکرد کد ما تأثیر منفی بگذارد، در حالی که به افسانههای رایج در مورد کد تولید شده توسط کامپایلر و کارایی نیز میپردازد.
بسیاری از کدها از یک تست ساده برای نشان دادن یک رفتار یا ویژگی زبان استفاده میکنند. مثالها از اظهارات به سبک روان NUnit استفاده میکنند که روشی معمولی و فشرده برای نمایش مفاهیم مورد بحث ارائه میدهد. چندین فریمورک تست واحد دیگر برای سیشارپ در دسترس هستند، و شما باید بتوانید به راحتی تکههای تست NUnit را به سبکهای دیگر ترجمه کنید.
طولی نمیکشد تا متوجه شوید که نمونههای کد، به تنهایی، معمولاً به شکلی که در آن ارائه شدهاند، کامپایل نمیشوند. برای اختصار، برخی از جزئیات، مانند وارد کردن فضای نام یا تعریف Main، حذف شده است. نمونههای کد بهجای نمایش یک برنامه قانونی، توجه شما را بر روی یک مفهوم متمرکز میکنند.
سرفصلهای کتاب The C# Type System:
- Title Page
- Copyright
- Dedication
- About the Author and Technical Reviewer
- Acknowledgments
- Introduction
- 1. Making the Most of the Type System
- 2. Value and Reference Types
- 3. Reference and Value Parameters
- 4. Implicit and Explicit Copying
- 5. Types of Equality
- 6. The Nature of Values
- 7. Value Types and Polymorphism
- 8. Performance and Efficiency
- Afterword
- Appendix: Further Reading
- Index
جهت دانلود کتاب The C# Type System میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.