توضیحات قسمت ها
دوره ی پروسیجرال :
قسمت 1 : نصب نرم افزار
قسمت 2 : توضیح CLR و دات نت، انواع پروژه ها ، منوها و زیر منوهای ویژال استودیو، پنجره های solution explorer ، properties ، toolbar ، error list و ...
قسمت 3 : بیت و بایت و تبدیل مبنا دهدهی به دودویی و برعکس ، اعداد منفی باینری ، جمع و کم اعداد باینری
قسمت 4 : متغییرها قسمت 1 _ اعداد شانزده دهی، آشنایی بیشتر با محیط ویژال استودیو و محیط کدنویسی ، متغییرها و انواع داده ای (انواع داده ای اعداد رند) ، قوانین نام گذاری متغییرها ، اوررایت شدن متغییرها
قسمت 5 : متغییرها قسمت 2 _ متغییرها و انواع داده ای (انواع داده ای اعداد اعشاری و کاراکتر) ، null و nullable کردن متغییرها
قسمت 6 :متغییرها قسمت 3 _ متغییرها و انواع داده ای (رشته و بولین) ، کاراکتر کنترلی ، اعداد شونزده دهی و دودویی در سی شارپ ، casting و تبدیل نوع
قسمت 7 : متغییرها قسمت 4 _ کلمه کلیدی var ، ادامه ی casting و تبدیل نوع ، نکات درباره اعداد اعشاری، الویت عملگرها
قسمت 8 : کلمه کلیدی dynamic ،نوع object ، دستور if و if-else و else if ، عملگرها (منطقی & و | و ^)
قسمت 9 : عملگر قسمت 2 _ ادامه ی عملگرها (منطقی & و | و&& و ||) ، نکته ی تکمیلی الویت عملگرها (الویت عملگر == و &)
قسمت 10 : عملگر قسمت 3 _ ادامه ی عملگرها (عملگر بیتی _ & و | و ^ و ~ و << و >>)
قسمت 11 : عملگر قسمت 4 _ ادامه ی عملگرها (مثال از عملگر بیتی & و | و ^) ، اشاره ای به enum ها ، اشاره ای به رویداد KeyDown کیبرد (کاربرد عملگرها در Enum ها و رویداد KeyDown)
قسمت 12 : breakpoint ، دستور ifتو در تو ، switch ، lable ها
قسمت 13 : گرفتن متن دکمه و ورودی از textbox ، حلقه for و کلمه کلیدی break و continue و for تو در تو
قسمت 14 : تابع Microsoft.VisualBasic.Interaction.InputBox در حلقه ی for برای گرفتن اطلاعات از کاربر ، آموزش تکمیلی حلقه ی for (شرط منفی) ، حلقه ی while و do-while ، کلمه ی کلیدی new برای ایجاد شی
قسمت 15 : قسمت اول آرایه های یک بعدی ، تصحیح اشتباه در قسمت 13 برای بلاک for (مشکل تعریف مجدد متغییر در خارج از بلاک) ، توضیح مختصر کلاس Array و ارث بری کلاس هایی که بصورت آرایه تعریف میشن از کلاس Array
قسمت 16 : قسمت دوم آرایه های یک بعدی ، مقدار دادن آرایه در حلقه ، کار با بعضی ازاعضای کلاس Array ، حلقه ی foreach
قسمت 17 : value type ها و reference type ها قسمت 1، از دست دادن اشاره گر موقع null کردن متغییر ، garbag collector ، کپی کلاس ها و آرایه ها
قسمت 18 : value type ها و reference type ها قسمت 2 ، مثال و کپی آرایه ای کلاس ها (stringbuilder) ، اضافه کردن ظرفیت آرایه ، boxing و unboxing
قسمت 19 : آرایه ی چند بعدی ، حلقه ها برای آرایه ی چند بعدی
قسمت 20 : آرایه در آرایه (jagged array) ، حلقه ها برای آرایه های دندانه ای
قسمت 21 : چک کردن مقدار آرایه و عضو یک آرایه در شرط ها (null نبودن شی آرایه و null نبودن عضو خاصی از آرایه با هم) ، متدها قسمت اول ، آرگومان ها در تابع ، کلمه ی کلیدی return
قسمت 22 : متدها قسمت دوم ، ادامه ی آرگومان ها و ارسال شان (ارسال با مقدار و ارسال با ارجاع) در تابع ، کلمه ی کلیدی return (بازگشت مقدار از تابع و همینطور خروج از تابع) ، فراخونی تابع داخل آرگومان یک تابع
قسمت 23 : متدها قسمت سوم ، تعویض ارسال مقادیر برای آرگومان های یک تابع ، مقدار پیش فرض برای آرگومان های تابع ، کلمه ی کلیدی ref و out (هر دو کلمه ی کلیدی ، ارسال با ارجاع دارند)
قسمت 24 : متدها قسمت چهارم ، کلمه کلیدی params ، overload کردن متدها ، کار کردن با انواع اورلود تابع MessageBox.Show
قسمت 25 : متدها قسمت پنجم ، توابع بازگشتی
قسمت 26 : متدها قسمت ششم ، ریز کردن هر تابع و الگوریتم به توابع کوچک تر ، فواید تابع نویسی ، پیش پردازنده ی regin ، توابع بازگشتی 2 (الگوریتم فیبونانچی) ،
قابلیت های جدید سی شارپ 2017 :متغییرهای tuple و بازگرداندن چندین مقدار در یک تابع
شروع دوره ی شی گرایی
قسمت 27 : تغییرات کلمه کلیدی out (تعریف متغییر زمان ارسال) ، ref در C#7 ، جدا کننده ی عدد ؛ فضای نام و فضای نام تو در تو و کلاس و کلاس تو در تو ، reference در solution explorer ، ساختن شی از کلاس ، ایجاد کلاس در فایل مجزا
قسمت 28 : using ، هم نام بودن فضای نام ها در کلاس های مجزا ، توضیح درباره ی کلاس (ساختن کلاس ماشین)
قسمت 29 : سطح دسترسی (1) ، مثال ، public ، private ، internal ، دسترسی به کلاس درون کلاس دیگه
قسمت 30 : متغییر سراسری ، تفاوت مقدار پیش فرض در متغییرهای سراسری و محلی
قسمت 31 : پروپرتی (property)
قسمت 32 : متد سازنده ، overload در متد سازنده ، ترتیب اجرا شدن کدهای کلاس با breakpoint ، مقداردهی شی با استفاده از کلوشه و مقداردهی مستقیم پروپرتی ها (بجای استفاده از پرانتز) ، سطح دسترسی متد سازنده
قسمت 33 : کلمه ی کلیدی this قسمت اول (اشاره گر به شی از همان کلاس)، فراخونی overload ها در متد سازنده با استفاده از کلمه ی کلیدی this ، متغییر سراسری و محلی هم نام ، کپی کانستراکتور
قسمت 34 : استفاده از دستور try-catch-finally ، partial class
ارث بری :
قسمت 35 : توضیح و کارکرد ارث بری در مثال کلاس ماشین و ارث بردن زمین از اجداد به نوادگان ، پیاده سازی ارث بری در کلاس ماشین های تیبا و نیسان و هواپیما قاهر 313
قسمت 36 : ارث بردن از کلاس object ها ، روش اجرا و در دسترس قرار گرفتن اشیاء در نوع داده ای پدر ولی شی ای از نوع فرزند ، ترتیب اجرا شدن کدها در کلاس های ارث بری با breakpoint
قسمت 37 : تبدیل نوع پدر به فرزند ، کلمه های کلیدی is و as
قسمت 38 : کلمه ی کلیدی base (1) ، ارسال آرگومان به متد سازنده ی کلاس والد توسط کلمه ی کلیدی base (اجرای متد سازنده ی کلاس والد) ، دسترسی به اعضای شی base ، پنل object browser و پیدا کردن کلاس های والد و فرزندان یک کلاس
قسمت 39 : کلمه ی کلیدی this قسمت دوم ، تبدیل شی this از درون کلاس پدر به شی ای از کلاس فرزند ، توضیح مختصر ساختار کلاس Form1
قسمت 40 : دلیل عدم نوشتن اعضای یک استراکچر توسط پروپرتی ، نکته برای قسمت 11
قسمت 41 : کلمه ی کلیدی static ، اعضای static و متد سازنده ی static ، کلاس های static ، دلیل کار نکردن کلمه کلیدی this در اعضای static
قسمت 42 : سطح دسترسی (2) ، protected و protected internal ، کلمه کلیدی readonly ، متغییرهای ثابت (constant)
چند ریختی (PolyMorphism) :
قسمت 43 : Member Hiding ، چند ریختی (اعضای virtual و override) ، کاربرد کلمه ی کلیدی base در Member Hiding و چند ریختی
قسمت 44 : کلمه ی کلیدی sealed (کلاس sealed و اعضای sealed) ، اعضا و کلاس های Abstract
قسمت 45 : استراکچرها قسمت 1
قسمت 46 : استراکچرها قسمت 2 ، متد مخرب و متد dispose
قسمت 47 : Enum ها (مثال موشک های هواپیما) ، توضیح تکمیلی قسمت 11 عملگرهای بیتی | و & و ^ ، کلمه کلیدی typeof، متد GetNames و فراخونی اعضای enum توسط foreach ، تفاوت رویدادهای KeyDown و KeyPress
قسمت 48 : nullable کردن استراکچر ، نکته ای درباره ی تبدیل (در شرط) ، نکته ای درباره ی استراکچرها (استراکچر نمیتونه استاتیک باشه)، نکته ی تکمیلی کلمه ی کلیدی as ، اینترفیس ها قسمت 1
قسمت 49 : اینترفیس ها قسمت 2
قسمت 50 : اینترفیس ها قسمت 3 ، پیاده سازی اینترفیس IEnumerable و IEnumerator برای یک آرایه در کلاسی (برای خوندن اعضا توسط foreach)
قسمت 51 : Indexer ها قسمت 1
قسمت 52 : indexer ها قسمت 2 ، مثال کلاس تریلی و پیاده سازی اینترفیس IEnumerable و مثال foreach
قسمت 53 : کلاس کالکشن های ArrayList ، Hashtable ، SortedList و مثال foreach برایشان
قسمت 54 : control container ها ، ControlCollections و ListBox.ObjectCollection و مثال foreach برای کلاس های کالکشن
قسمت 55 : اعضای کلاس Type و کار با کلاس ها در فضای نام System.Reflection ، فراخونی اعضای کلاس توسط Reflection (فراخونی فیلد و پروپرتی و متد) ، گرفتن نام کلاس های یک Assembly توسط کلاسی در آن اسمبلی
قسمت 56 : Generic ها قسمت 1
قسمت 57 : Generic ها قسمت 2 ، محدودیت (constraint) برای Generic ها
قسمت 58 : جنریک قسمت 3 ، پیاده سازی جنریک همراه محدودیت (محدودیت کلاس Mashin) برای کلاس Trailer و MashinCollection ، پیاده سازی اینترفیس های ساخته شده توسط مایکروسافت (مثل اینترفیس های جنریک IEnumerable<> و IEnumerator<> و IList<> و IDictionary<> و توضیح تکمیلی HashTable و ... ) ، پیاده سازی اینترفیس IComparable<> برای کلاس Vehicle
قسمت 59 : جنریک قسمت 4 ،پیاده سازی اینترفیس IComparable<> وایجاد کلاس ListCustom<> و الگوریتم مرتب سازی برای متد Sort ، کلاس tuple
قسمت 60 : اشاره گر و اندازه ی اشاره گر در ویندوز 32 و 64 بیت ، نکته ای درباره ی کلاس های اورلود شده ، متدهای Object.GetHashCode و Object.Equals و اورلود این متدها در کلاس string ، پیاده سازی اینترفیس IEquatable<>، متد dispose و کلمه ی کلیدی using ، کلمه کلیدی using static
شروع دوره ی Windows Form :
قسمت 61 : ادامه ی using و GC ، کلاس Program و متد Main
قسمت 62 : مقداردهی رویداد ، شی sender و متغییر رویدادی (شی e در رویدادها)
قسمت 63 : فایل Designer.cs در فرم ها و کدنویسی در آن
قسمت 64 : ادامه و مثالی از شی sender ، ساختار سلسله مراتبی ارث بری کلاس Form و EventArgs ها ، توضیح پروپرتی های کلاس Form در پنجره ی Properties (تا پروپرتی AutoScrollMinSize)
قسمت 65 : ادامه ی توضیح پروپرتی های کلاس Form در پنجره ی Properties
قسمت 66 : رویدادهای دکمه ی HelpButton رویداد ، توضیح (بصورت کد نویسی) پروپرتی های کلاس Form (تا پروپرتی BackColor)
قسمت 67 : توضیح (بصورت کد نویسی) پروپرتی های کلاس Form (تا پروپرتی Icon)
قسمت 68 : ارث بری کلاسی از کلاس Component ، نوع داده ای پدر ولی شی از کلاس های کنترل (Form1) ، توجه به عدم نساختن شی ای از همون کلاس در متد سازنده ی خودِ همون کلاس، توضیح (بصورت کد نویسی) پروپرتی های کلاس Form (تا پروپرتی Parent)
قسمت 69 : اضافه کردن کنترلی به کنترل کانتینر ها (tab control و ...) ، متد Control.Show() و Form.ShowDialog() و تفاوت شان برای فرم ، پروژه های چند فرمی ، تغییر اولین فرم باز شده در متد main ، نحوه ی دسترسی از درون فرم جدید به اعضای فرم قبلی (مثال هم با استفاده از Constractor و هم با پروپرتی Tag)
قسمت 70 : توضیح (بصورت کد نویسی) پروپرتی ها و متدهای کلاس Form
قسمت 71 : کلاس InputLanguage و CultureInfo (و تغییر زبان ویندوز) ، کنترل تایمر ، رویداد InputLanguageChanged برای فرم
قسمت 72 : توضیح رویدادهای کلاس Form ، رویدادهای مربوط به Drag&Drop
قسمت 73 : رویدادهای موس ، استفاده از متغییرهای رویدادیِ یک رویداد در رویداد دیگر (استفاده از پروپرتی location موس از رویداد MouseMove در رویداد Click)
قسمت 74 : نکته تکمیلی GC در قسمت 61 (متد GC.WaitForPendingFinalizers()) ، نحوه ی اجرای پروپرتی ها و رویدادها ، شخصی سازی کردن پروپرتی ها و رویدادها در هر کلاسی (override کردن این متدها در انواع کلاس فرزندان کلاس Form و فرزندان کلاس Button و ...) ، رویدادهای کیبرد ، نحوه ی کار کردن کلیدهای Tab و Up و Down و ... در رویدادهای کیبرد
قسمت 75 : مختصری درباره ی کلاس SendKey ، ساختن دو کنترل و اضافه کردنشان به فرم و ریختن هر دو شی از کنترل ها در یک متغییر و ... ، توضیح رویدادهای کلاس Form ، رویداد Scroll ، اجرای رویداد Scroll توسط چرخاندن موس (از درونِ رویداد MouseWheel)
قسمت 76 : رویدادهای درگ و دراپ قسمت 2 (درگ و دراپ کردن کنترلی مثل Button درون کنترل کانتینر دیگر) ، متدهای DoDragDrop و GetDataPresent و GetFormats ، جابجایی کنترل ها با درگ کردن کنترل ها
قسمت 77 : گرافیک قسمت 1 ، Transparent کردن (میزان Opacity) یک کنترل بجز کنترل فرم ، چند نکته ی جانبی برای مباحث گرافیک و مباحث دیگر ، توضیح مختصرکلاس Graphics (Graphics گرفتن از کنترل های مختلف)
قسمت 78 : گرافیک قسمت 2 ، متدهای رسمِ کلاس Graphics از رویدادهای دیگر (بجز رویداد paint) و مشکللات مربوط به این شیوه ، رویداد Paint و همچنین مشکلات این رویداد
قسمت 79 : گرافیک قسمت 3 ، ارائه ی روشی عمومی برای مشکلات مربوط به رسم در رویداد Paint ، رسم و آشنایی مختصر با کلاس bitmap ، متد Invalid ، using کردن Brush ها ، ادامه ی توضیح اعضای کلاس Graphics
قسمت 80 : گرافیک قسمت 4 ، اعضای مربوط به رسم در کلاس Graphics ، محدودیت در پروپرتی Clip و تابع Invalidate
قسمت 81 : گرافیک قسمت 5 ، ادامه ی توضیح کلاس Graphics _ متدهای ScaleTransform و Clear و CopyFromScreen در کلاس Graphics (رسمِ تصویرِ صفحه ی نمایش)
قسمت 82 : گرافیک قسمت 6 ، ادامه ی توضیح کلاس Graphics _ متدهای TranslateTransform و RotateTransform و ScaleTransform و TranslateClip (تغییر مبدا مختصات و چرخش و تغییر مقیاس در گرافیک رسم شده)
قسمت 83 : گرافیک قسمت 7 ، اعضای Rectangle ، ادامه ی توضیح کلاس Graphics
قسمت 84 : گرافیک قسمت 8 ، اعضای کلاس Bitmap
قسمت 85 : گرافیک قسمت 9 ، ادامه ی اعضای کلاس Bitmap _ عضو GetPixel و SetPixel (تغییرات در بیت مپ مثل تغییر رنگ ، تغییر روشنایی ، سیاه و سفید کردن ، معکوس کردن یا نگاتیو کردن رنگ ، حذف یک رنگ از بیت مپ)
قسمت 86 : گرافیک قسمت 10 ، کنترل ColorDialog ، اعضای متدهای استراکچر Color (گرفتن HSL) ، حذف یک رنگ به اندازه ی پر رنگ تر شدن یا کم رنگ تر شدن اش (به اندازه ی Saturation)
قسمت 87 : گرافیک قسمت 11 ، انتخاب بخشی از تصویر بیت مپ و feature کردن آن بخش (کاهش میزان alpha به ترتیبی که از لبه ی تصویر دور میشود)
قسمت 88 : گرافیک قسمت 12 ، ایجاد ثانیه ی دیجیتالی و همچنین رسم صفحه ی شطرنج و کاربرد علامت هم باقی مانده ، کلاس HslColor و نصب کمپوننت های diagram در ستاپ ویژال استودیو ، تغییر hue و saturation بیت مپ ، توضیح درباره ی الگوریتم شطرنجی کردن بیت مپ ، توضیح درباره ی کلاس های گرافیکی بیشتر
قسمت 89 : گرافیک قسمت 13 ، اعضای کلاس ImageAttributes ، Brush ها
قسمت 90 : گرافیک قسمت 14 ، ادامه ی Brush ها
قسمت 91 : گرافیک قسمت 15 ، pen ها ، کلاس GraphicsPath ، کلاس Cursor ، پروژه ی نقاشی (paint)
قسمت 92 : گرافیک قسمت 16 ، پروژه ی نقاشی (paint) قسمت 2، تغییر رنگ ، کنترل NumericUpDown ، تغییر سایز pen ، تغییر سایز برای بیت مپ و رسم ، دکمه ی color picker
قسمت 93 : گرافیک قسمت 17 ، پروژه ی نقاشی (paint) قسمت 3، ادامه ی color picker ، دکمه ی براش ( و ساخت براش در فتوشاپ) ، ست کردن رنگ دلخواه
قسمت 94 : گرافیک قسمت 18 ، پروژه ی نقاشی (paint) قسمت 4، ست کردن GradiantBrush و اندازه ی دلخواه برای براش ، دکمه ی پاک کن
قسمت 95 : گرافیک قسمت 19 ، پروژه ی نقاشی (paint) قسمت 5، ادامه ی دکمه ی پاک کن با میزان trancparency و اندازه ی دلخواه
اطلاعاتی درباره ی آموزش
تعداد قسمت های آموزش : 95
حجم کلیه ی قسمت های آموزش (تا 95 قسمت) : حدود 8.5 گیگابایت (در حالت فشرده)
زمان آموزش (تا قسمت 95) : 185 ساعت
میانگین هر قسمت : تقریبا 2 ساعت
سطح برنامه نویسی (تا قسمت 95) : مبتدی _ متوسط
سال تهیه (تا قسمت 95) : 1396
نکاتی درباره ی آموزش
1) فرمت تبدیل MP4 و کدک تبدیل H264 هست
2) از همینجا ، از همه ی کسایی که بهم در سی شارپ کمک کردن نهایت تشکر رو میکنم (اسم نمیبرم چون خیلی ها کمکم کردن تا احیانا یکی از قلم نیفته)
بوک مارک ها