یادگیری سی شارپ رایگان
در این دوره آموزشی به آموزش گام به گام برنامه نویسی ویندوز و وب با زبان جدید سی شارپ C# می پردازیم . با ارایه مثال های عملی و سورس کد در هر بخش .
مباحث پیشرفته C#
صفتها برچسبهایی اعلانی هستند که در انتقال اطلاعات مربوط به رفتارهای عناصر مختلف مانند کلاسها، متدها، ساختارها، شمارندهها، اسمبلیها و ... به زمان اجرا، نقش دارند. شما میتوانید با استفاده از این صفتها اطلاعات اعلانی را به یک برنامه اضافه کنید. این برچسبها با براکت ([]) نمایش داده میشوند و بالای عنصری که قرار است استفاده شود قرار میگیرند.
کلاسهای Collection، کلاسهای مختص به بازیابی و ذخیرهی داده هستند. این کلاسها از انباشتها، صفها، لیستها و جداول درهم پشتیبانی میکنند. بسیاری از این کلاسها رابطهای یکسانی را پیادهسازی میکنند.
اشیاء Reflectionی جهت دریافت اطلاعات مربوط به نوع در زمان اجرا کاربرد دارند. کلاسهایی که امکان دسترسی را برای متادیتای یک برنامهی در حال اجرا فراهم میکنند، در فضای نام System.Reflection قرار دارند. این فضای نام شامل کلاسهایی است که شما میتوانید با کمک آنها اطلاعاتی را دربارهی برنامه به دست آورید و به صورت پویا نوعها، مقادیر و اشیاء را به برنامه اضافه کنید.
Delegateها در C# مشابه با اشارهگرهای توابع در C و C++ هستند. یک Delegate متغیر نوع مرجعی است که این ارجاع به متد را در خود نگهداری میکند. این مرجع را میتوان در زمان اجرا تغییر داد.
متدهای anonymous تکنیکی را فراهم میکنند که با کمک آن میتوان بلوکی از کد را به عنوان یک پارامتر نماینده رد کرد. این متدها درست مانند بدنه متدهای بدون نام هستند.
به اعمال کاربر Event گفته میشود؛ مانند فشردن دکمهی کیبورد، کلیک موس، حرکت موس و ... یا برخی از رخدادها مانند نوتیفیکیشن های تولید شدهی سیستم. برنامهها باید به Event هایی مانند وقفهها پاسخ دهند. Event ها در ارتباطات میان پردازشی کاربرد دارند.
Propertisها اعضای نام دار کلاسها، ساختارها و رابطها هستند. متغیرها یا متدهای عضو یک کلاس یا ساختار Field نامیده میشوند. Propertisها افزونهای از فیلدها هستند که با سینتکس یکسانی میتوان به آنها دسترسی پیدا کرد. این Propertisها از طریق مقداری از فیلدهای خصوصی که میتوان آنها را خواند، نوشت یا دستکاری کرد، از اکسسورها استفاده میکنند.
با کمک Indexer ها میتوان اشیاء را مانند یک آرایه ایندکس کرد. زمانی که Indexer ی را برای کلاسی تعریف میکنید این کلاس مانند یک آرایهی مجازی رفتار میکند. بعد از این کار میتوانید با استفاده از عملگر دسترسی آرایه ([]) به نمونهی این کلاس دسترسی پیدا کنید.
با استفاده از Generic ها میتوانید مشخصات نوع دادهی عناصر برنامهنویسی را در یک کلاس یا یک متد تعریف کنید. به شرط آن که این نوع واقعاً در برنامه استفاده شده باشد. به بیان دیگر با استفاده از Generic ها میتوانید کلاس یا متدی را بنویسید که بتواند در کنار هر نوع دادهای کار کند.
C# زمانی که تابعی از بلوک کد توسط اصلاحکنندهی نا امن نشان شده است، امکان استفاده از متغیرهای اشارهگر را در این تابع فراهم کرده است. کد نا امن یا کد مدیریت نشده بلوکی از کد است که از یک متغیر اشارهگر استفاده میکند.
Thread به مسیر اجرای برنامه گفته میشود. هر یک از Threadها جریان منحصر به فردی از کنترل را تعریف میکنند. اگر برنامهی شما شامل عملیات پیچیده و زمانبر است، در این صورت بهتر است از مسیرهای اجرایی یا Threadهای مختلف استفاده کنید. به گونهای که هر یک از Threadها کار مشخصی را انجام دهند.
