آموزش C# 10 Playbook

C# 10 Playbook

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره: این دوره به شما آموزش حل مسائل پیچیده تر در سی شارپ را می دهد. شما با حل مسائل عملی متعددی که به طیف کاملی از ویژگی‌های زبان C# نیاز دارند، از کلاس‌ها گرفته تا مقادیر تهی، تا استثناهای عمومی و موارد دیگر، یاد خواهید گرفت. در این دوره، C# 10 Playbook، حل مسائل پیچیده‌تر را یاد خواهید گرفت. در سی شارپ نمونه‌های متعددی از مشکلاتی را که ممکن است در برنامه‌های دنیای واقعی ایجاد شود، مشاهده خواهید کرد و یاد خواهید گرفت که چگونه از ویژگی‌های زبان سی شارپ برای مقابله با آنها استفاده کنید. این مشکلات شامل تایید آرگومان های روش، تطبیق الگو، تغییر ناپذیری، نمونه سازی صحیح اشیا، LINQ، کدگذاری ناهمگام، مقادیر تهی، ژنریک، مدیریت خطا، بازتاب، interop و موارد دیگر می شود. در پایان دوره، شما این دانش را خواهید داشت که از ویژگی های مختلف زبان C# به طور مناسب برای حل مشکلات پیچیده تر استفاده کنید و مهارت های کدنویسی C# خود را به سطح بعدی ارتقا دهید.

سرفصل ها و درس ها

بررسی اجمالی دوره Course Overview

  • بررسی اجمالی دوره Course Overview

کنترل جریان و حلقه ها Control Flow and Loops

  • معرفی کتاب راهنما Introducing the Playbook

  • مقایسه حلقه‌های for و foreach Comparing the for and foreach Loops

  • استفاده از Index در حلقه های for و foreach Using an Index in for and foreach Loops

  • طراحی حلقه ها بدون توالی: در حالی که Designing Loops without Sequences: While

  • جدا کردن Loop Control Logic Separating out the Loop Control Logic

  • مقایسه حلقه‌های while، for و do Comparing while, for, and do Loops

  • خلاصه Summary

روش ها و خواص Methods and Properties

  • بررسی اجمالی Overview

  • افزودن بند نگهبانی به متدها Adding Guard Clauses to Methods

  • بهبود کد بند نگهبانی Improving the Guard Clause Code

  • انتخاب سبک های املاک Choosing Styles of Property

  • کد نویسی روان Fluent Coding

  • برگرداندن مقادیر چندگانه با افزایش ارزش Returning Multiple Values with a Value Tuple

  • مصرف چند برابر ارزش برگشتی Consuming the Returned Value Tuple

  • برگرداندن چندین مقدار بدون پارامتر Returning Multiple Values with out Parameters

  • ارسال ValueType توسط مرجع برای عملکرد Passing ValueTypes by Reference for Performance

  • مقایسه پارامترهای ورودی، خروجی و ref Comparing in, out, and ref Parameters

  • استفاده از sizeof برای تصمیم گیری در مورد عبور از مرجع Using sizeof to Decide Whether to Pass by Reference

  • خلاصه Summary

انواع، اشیاء و OOP Types, Objects, and OOP

  • بررسی اجمالی Overview

  • مطمئن شوید که فیلدها اولیه هستند Making Sure Fields Are Initialized

  • راه اندازی فیلدها تا سلسله مراتب کلاس Initializing Fields up the Class Hierarchy

  • بارگذاری تنبل Lazy Loading

  • با استفاده از Lazy<T Type Using the Lazy<T> Type

  • اجرای کلاس سینگلتون Implementing a Singleton Class

  • نوشتن کلاس کارخانه: دسترسی خصوصی مورد نیاز است Writing a Factory Class: Private Access Required

  • حل مسئله با کلاس تودرتو Solving the Problem with a Nested Class

  • ریخته‌گری ایمن با استفاده از تطبیق الگو Safely Casting Using Pattern Matching

  • تصمیم گیری بین ساختار، کلاس، ساختار رکورد و کلاس رکورد Deciding between Struct, Class, Record Struct, and Record Class

  • نمونه‌های ساختار در مقابل کلاس Struct vs. Class Examples

  • خلاصه Summary

رابط Interfaces

  • بررسی اجمالی Overview

  • معرفی نسخه ی نمایشی Introducing the Demo

  • راه اندازی Dependency Injection Setting up Dependency Injection

  • استفاده از رابط برای رفع تزریق وابستگی Using an Interface to Fix the Dependency Injection

  • اجتناب از تداخل نام با پیاده سازی رابط صریح Avoiding Name Clashes with Explicit Interface Implementation

  • پیاده سازی روش رابط صریح: چگونه کار می کند Explicit Interface Method Implementation: How It Works

  • تزریق وابستگی از طریق رابط ها (دوباره!) Dependency Injection via Interfaces (Again!)

  • گسترش یک رابط با پیاده سازی های پیش فرض Extending an Interface with Default Implementations

  • مفیدتر کردن پیاده‌سازی رابط پیش‌فرض Making the Default Interface Implementation More Useful

  • خلاصه Summary

مقادیر پوچ Null Values

  • بررسی اجمالی Overview

  • ساختن ساختار شما ناتوان Making Your Struct Nullable

  • کار با ساختارهای Nullable Working with Nullable Structs

  • نوع مقدار پیش فرض تهی نیست Value Type Default Isn't Null

  • فعال کردن بررسی تهی برای کلاس ها Enabling Null-checking for Classes

  • استفاده از کلاس های Nullable و Not-Nullable Using Nullable and Not-nullable Classes

  • پوچ پذیری: ساختارها در مقابل کلاس ها Nullability: Structs vs. Classes

  • اگر انواع مرجع Nullable فعال نباشند چه می شود؟ What if Nullable Reference Types Are Not Enabled?

  • مدیریت رشته های پوچ یا خالی Handling Null or Empty Strings

  • فعال کردن انواع مرجع باطل برای کدهای موجود Enabling Nullable Reference Types for Existing Code

  • فعال کردن پوچ پذیری برای انواع عمومی Enabling Nullability for Generic Types

  • پوچ پذیری: استنباط مقاصد نویسنده Nullability: Inferring the Author’s Intentions

  • ToString() و عملگر Null-forgiving ToString() and the Null-forgiving Operator

  • خلاصه Summary

ژنتیک Generics

  • استفاده از ژنریک برای استفاده مجدد از منطق Leveraging Generics to Reuse Logic

  • ساختن یک درخت با ژنرال Building a Tree with Generics

  • مصرف یک نوع ژنریک Consuming a Generic Type

  • تایپ قوی با ژنریک Strong Typing with Generics

  • مرتب سازی یک نوع عمومی Sorting a Generic Type

  • پیاده سازی کلاس پایه عمومی برای اشیاء تجاری Implementing a Generic Base Class for Business Objects

  • خلاصه Summary

کد نویسی غیرقابل تغییر و فقط خواندنی Immutable and Read-only Coding

  • بررسی اجمالی Overview

  • کلاس های خود را تغییرناپذیر کنید Making Your Classes Immutable

  • ساختارهای خود را تغییرناپذیر کنید Making Your Structs Immutable

  • تغییرناپذیری: ساختارها و طبقات با هم مقایسه شدند Immutability: Structs and Classes Compared

  • مشکل با ویژگی های مجموعه The Problem with Collection Properties

  • پیاده سازی ویژگی های مجموعه فقط خواندنی Implementing Read-only Collection Properties

  • فعال کردن بهینه سازی کامپایلر برای روش های فقط خواندنی Enabling Compiler Optimisations for Read-only Methods

  • خلاصه Summary

کدگذاری و الگوهای مبتنی بر داده Data-driven Coding and Patterns

  • بررسی اجمالی Overview

  • استفاده از سوئیچ و الگوها برای پردازش قوانین تجاری Using Switch and Patterns to Process Business Rules

  • بهبود کد با یک عبارت سوئیچ Improving the Code with a Switch Expression

  • جداسازی داده ها و کدها Separating the Data and the Code

  • خلاصه: تست کد Summary: Testing the Code

مناسبت ها Events

  • بررسی اجمالی Overview

  • اطلاع رسانی هنگام تغییر مقدار Notifying When a Value Has Changed

  • مطرح کردن رویدادی که ممکن است کنترل کننده ای نداشته باشد Raising an Event That Might Not Have Handlers

  • افزودن و حذف هندلرها از یک رویداد Adding and Removing Handlers from an Event

  • انتقال داده به Handlers Passing Data to the Handlers

  • با استفاده از INotifyPropertyChanged Using INotifyPropertyChanged

  • خلاصه Summary

LINQ LINQ

  • بررسی اجمالی Overview

  • راه اندازی نسخه ی نمایشی Setting up the Demo

  • حذف موارد تکراری Removing Duplicates

  • گروه بندی داده های شما Grouping Your Data

  • مرتب سازی به عنوان داده های گروهی شما Sorting as You Group Data

  • صاف کردن فهرستی از فهرست ها Flattening a List of Lists

  • پیوستن به لیست های متعدد Joining Multiple Lists

  • گروه بندی هنگام پیوستن به لیست ها Grouping When You Join Lists

  • محاسبه متوسط در یک حلقه داخلی Calculating an Average in an Inner Loop

  • ایجاد متدهای توسعه سفارشی LINQ Creating Custom LINQ Extension Methods

  • استفاده از ارزیابی تنبل Taking Advantage of Lazy Evaluation

  • از بین بردن ارزشیابی تنبل با مجموعه ها Destroying Lazy Evaluation with Collections

  • خلاصه Summary

استثناها و رسیدگی به خطاها Exceptions and Error Handling

  • بررسی اجمالی Overview

  • معرفی نسخه آزمایشی: خواندن یک فایل JSON مشکل ساز Introducing the Demo: Reading a Problematic JSON File

  • انجام اقدامات مختلف برای خطاهای مختلف Taking Different Actions for Different Errors

  • چند بلوک گرفتن: بهترین روش ها Multiple Catch Blocks: Best Practices

  • تعریف استثنای سفارشی Defining a Custom Exception

  • استفاده از فیلترهای استثنا Using Exception Filters

  • گرفتن یک استثناء از کد Async Catching an Exception Thrown from Async Code

  • اطمینان از اینکه کد پاکسازی همیشه با آخر اجرا می شود Ensuring Cleanup Code Is Always Executed with Finally

  • استفاده به عنوان یک جایگزین برای در نهایت Using as an Alternative to Finally

  • اشکال زدایی چرا استثنا مطرح شده است Debugging Why an Exception Has Been Thrown

  • استثناها در مقابل Debug.Assert() Exceptions vs. Debug.Assert()

  • خلاصه Summary

صفات و بازتاب Attributes and Reflection

  • بررسی اجمالی Overview

  • راه اندازی نسخه ی نمایشی Setting up the Demo

  • علامت گذاری یک روش به عنوان منسوخ شده Marking a Method as Obsolete

  • نوشتن یک ویژگی سفارشی Writing a Custom Attribute

  • استفاده از Reflection برای یافتن ویژگی های یک نوع Using Reflection to Find the Attributes on a Type

  • استفاده از ویژگی ها برای ایجاد متن دوستانه برای مقادیر Enum Using Attributes to Create Friendly Text for Enum Values

  • استفاده از ویژگی ها در زمینه ها: اجرای متن دوستانه enum Consuming Attributes on Fields: Implementing Enum Friendly Text

  • استفاده از Reflection برای به دست آوردن مقادیر ویژگی یک نمونه Using Reflection to Obtain the Property Values of an Instance

  • تشخیص اینکه آیا یک کلاس تغییرناپذیر است یا خیر Identifying Whether a Class Is Immutable

  • خلاصه Summary

برنامه نویسی غیر همگام Async Programming

  • بررسی اجمالی Overview

  • اجرای یک عملیات Async Running an Async Operation

  • استفاده از WhenAll برای انتظار عملیات Async Using WhenAll to Await Async Operations

  • انتظار نمی‌تواند وظایف موازی را راه‌اندازی کند Await Can’t Launch Parallel Tasks

  • رابط کاربری را با کار Async مخلوط نکنید Don’t Mix the UI into the Async Task

  • استفاده از Progress برای نمایش نتایج با تکمیل هر کار Using Progress to Show Results as Each Task Completes

  • حفاظت از داده های مشترک با یک بیانیه قفل Protecting Shared Data with a Lock Statement

  • استفاده از انواع Thread-safe برای جلوگیری از قفل کردن واضح Using Thread-safe Types to Avoid Explicit Locking

  • اجتناب از نیاز به همگام سازی موضوعات Avoiding the Need to Synchronize Threads

  • ایجاد یک جریان Async Generating an Async Stream

  • مصرف جریان Async Consuming an Async Stream

  • خلاصه Summary

آزمایش کردن Testing

  • بررسی اجمالی Overview

  • داده های خارجی از آزمایش جلوگیری می کند External Data Prevents Testing

  • تلاش برای تست بدون تمسخر Trying to Test without Mocking

  • استفاده از Dependency Injection برای ساختن تایپ ها مقل پسند Using Dependency Injection to Make Types Mock-friendly

  • اجرای تمسخر برای حذف وابستگی به داده های خارجی Implementing Mocking to Remove the External Data Dependency

  • تست: روش‌های استاتیک بدون وابستگی Testing: Static Methods without Dependencies

  • مشکل روش های استاتیک با وابستگی ها! The Problem with Static Methods with Dependencies!

  • حل وابستگی خارجی استاتیک Solving the Static External Dependency

  • انتخاب مقادیر پارامتر برای آزمایش یک روش Choosing Parameter Values to Test a Method

  • نوشتن یک تست داده محور در NUnit Writing a Data-driven Test in NUnit

  • خلاصه Summary

Interop Interop

  • نمای کلی: معرفی API ویندوز Overview: Introducing the Windows API

  • فراخوانی یک روش API مدیریت نشده: MessageBox() Calling an Unmanaged API Method: MessageBox()

  • P/Invoke و Marshalling Data P/Invoke and Marshalling Data

  • تشخیص توابع ANSI و Unicode API Distinguishing ANSI and Unicode API Functions

  • داده های مارشال سفارشی Custom Marshalling Data

  • نمایش دستگاه ها با EnumDisplayDevicesW() Displaying Devices with EnumDisplayDevicesW()

  • فراخوانی یک روش VB Calling a VB Method

  • فراخوانی یک روش f# Calling an F# Method

  • عدم تطابق نوع C#/F# The C# / F# Type Mismatch

  • خلاصه Summary

نمایش نظرات

آموزش C# 10 Playbook
جزییات دوره
7h 48m
151
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Simon Robinson Simon Robinson

نوازنده

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