آیا می دانید تا کنون 8399 نفر در 18 دوره آموزشی سون لرن ثبت نام کرده اند !

دوره مجازی #C (جلسه 12): لیست های Generic، فایل ها و Serialization

14 2243 ۲۵ مرداد ۹۴
در این با لیست های Generic، فایل ها و Serialization آشنا می شویم و با انجام تمرین های مختلف و انجام مثال های گوناگون کاربرد این مطالب را نیز بررسی می کنیم. علاوه بر آن به منظور تکمیل مطالب با فایل های xml هم به صورت ابتدایی و کاربردی آشنا می شویم و برای اولین بار، داده هایی را در این نوع فایل ها ذخیره خواهیم کرد. مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:
  • آشنایی با List و نحوه ی مقداردهی و پیمایش آن
  • آشنایی مقدماتی و پایه ای با توابع موجود برای لیست های Generic
  • آشنایی با صف (Queue) و نحوه ی قرار دادن و خواندن داده در آن
  • معرفی پشته (Stack) و نحوه ی قرار دادن و خواندن داده در آن
  • آشنایی با فایل ها و نحوه ی ذخیره و بازیابی داده در آن ها
  • آشنایی با متد های مهم کلاس File
  • معرفی و کار با کلاس های StreamWriter و StreamReader
  • آشنایی با مفهوم Serialization
  • معرفی Xml Serialization به عنوان یک راه برای ذخیره ی داده ها
در جلسه ی آینده بیشتر با فایل ها آشنا خواهیم شد و عملیات مختلفی را بر روی فایل ها و دایرکتوری ها انجام می دهیم.
این مطلب یک جلسه از دوره آموزش جامع #C - پایه تا پیشرفته است و برای دیدن آن باید در این دوره ثبت نام کنید .
توضیحات : با توجه به فراگیر شدن استفاده از پلتفرم .NET به همراه سیستم مدیریت پایگاه داده SQL Server به منظور انجام پروژه های تحت ویندوز در ابعاد بزرگ و همینطور متوسط و کوچک، دوره ی جامع #C را که شامل آموزش پایه تا پیشرفته ی این مفاهیم می باشد برای کاربران محترم وب سایت سون لرن تهیه و تولید کرده ایم. این دوره متشکل از چند فصل کلی می باشد که در سایر منابع آموزشی و کلاس های حضوری معمولا بصورت دوره هایی مستقل و جداگانه و مجموعا با هزینه ای بالغ بر 1 میلیون تومان ارائه می گردند در صورتی که وب سایت سون لرن به منظور حمایت از کاربران محترم، این چند دوره را در یک دوره ی جامع گردآوری کرده است تا شما عزیزان با صرف هزینه ای بسیار کمتر از کلاس های حضوری (در واقع کمتر از 15% هزینه کلاس های حضوری) بتوانید تمامی این مطالب را بصورت کامل فراگیرید. در این دوره مفاهیم کاربردی طراحی و پیاده سازی برنامه های Desktop با زبان #C و همینطور طراحی پایگاه داده با استفاده از SQL Server را بررسی خواهیم کرد. در هر فصل از دوره سعی شده است تا با انجام مینی پروژه ها، مطالب آموزشی بصورت کاملا کاربردی تدریس شود. علاوه بر این در پایان دوره یک پروژه کامل را از صفر تا 100 طراحی و پیاده سازی خواهیم کرد. امید است این دوره ی جامع برای شما دوستان گرامی مفید واقع گردد.
:: مطالب جدید سون لرن را از طریق ایمیل دریافت کنید :

دیدگاه ها 14 دیدگاه برای این مطلب ارسال شده است.

  • ‏‏
    Aria Banazadeh(۲۶ مرداد ۱۳۹۴)

    سلام ببخشید اقای زارعی ازتون دو تا سوال داشتم اگه میشه1. لطفا ی کدی بگید که بتونم با اون stringi که از کاربر دریافت میکنم را به عدد تبدیل کنم و بعدا بتوانم ان را در حلقه ام چاپ کنم و 2. اینکه میخوام بدون نوشتن یک حلقه ی for بعد از هر stringi که در ارایه ام چاپ میکنم به خانه بعدی ارایه برود نمیدونم منظورمو فهمیدید یا نه 😐 با تشکر 😛

    • ‏‏
      آرین زارعی(۲۶ مرداد ۱۳۹۴)

      سلام. در مورد سوال اول، من این کار رو به کرّات در ویدیو ها انجام دادم به صورت زیر باید انجام بدهید:
      int a = convert.toint32(console.readline());//be in shekl
      متاسفانه سوال دوم رو متوجه نمی شم…

  • ‏‏
    صادق رضاییان(۲۷ مرداد ۱۳۹۴)

    سلام آیا آخرین جلسه ی سی شارپ در فصل 2جلسه فردا است
    بعد کلا تا چه موقع این دوره سی شارپ به پایان میرسد؟

    • ‏‏
      آرین زارعی(۲۷ مرداد ۱۳۹۴)

      سلام.
      خیر یک جلسه دیگر هم برای این فصل هست.
      با یک حساب سر انگشتی فکر می کنم حدود 4 ماه دیگر. البته در اواخر دوره سرعت جلسات بیشتر خواهد شد.

  • ‏‏
    امید دهقان(۲۸ مرداد ۱۳۹۴)

    سلام اگه میشه درباره کلمه کلیدی static یه توضیح بدید چون من دیدم که خیلی ازش استفاده میکنید.
    و اگه میشه یه توضیح بدید که دقیقا کاربرد string.format چی هست و چه زمان باید ازش استفاده کنیم. ممنون استاد.

    • ‏‏
      آرین زارعی(۲۹ مرداد ۱۳۹۴)

      سلام.
      ببینید static از نظر لغوی به معنای ثابت و ایستا هست. در جلسات آینده من کمی درباره این کلمه توضیح خواهم داد. ولی در کل وقتی در یک کلاس، یک متد را استاتیک در نظر میگیریم، این به این معناست که برای اجرای متد نیاز به ساختن شی از روی کلاس نیست. همین مساله برای فیلد ها و متغیر های استاتیک وجود دارد. از نظر مفهومی هم متد استاتیک یک رفتار است که فارغ از اشیا می باشد و رفتار کلی یک کلاس است.
      string.format وقتی استفاده می شود که شما میخواهید یک سری داده ی مختلف را با یک فرمت درون یک رشته قرار دهید. مثلا اطلاعات یک دانشجو را به شکل «نام-نام خانوادگی-شماره دانشجویی***تاریخ تولد» درون یک رشته قرار دهید اما می دانیم که شماره دانشجویی و تاریخ تولد از نوع رشته ای نیستند . یک راه استفاده از این تابع استاتیک است.
      موفق باشید

  • ‏‏
    سید احسان عظیمی(۲۰ فروردین ۱۳۹۵)

    ممنون واقعا این ویدیو عالی بود

  • ‏‏
    Tarikhi Massud(۳۰ فروردین ۱۳۹۵)

    سلام
    استاد چطوری میشه یه کلاس جنریک مثل دیکشنری رو سریالایز کرد؟؟؟؟

    • ‏‏
      آرین زارعی(۳۰ فروردین ۱۳۹۵)

      سلام.
      ببینید یه چند نکته باید توجه بشه. اول اینکه مراحل فرق نداره. نکته اینه که باید اون اتریبیوت که گفته شده در این قسمت رو کلاس مقصد داشته باشه. این لینک شاید کمکتون کنه:
      http://www.codeproject.com/Articles/233908/Xml-serialization-using-generics

  • ‏‏

    سلام جناب زارعی. برای آنالیز و رسم دقیق کلاس دیاگرام یک پروژه در ابعاد کوچک و بزرگ و تشخیص بهتر رفتارهای یک موجودیت که در قالب یک کلاس در زبان شی گرا پیاده سازی میشود و ارتباط کلاسها با یکدیگر و بعد از آن انتخاب استراتژی پیاده سازی کلاسها (بصورت جنریک باشند یا خیر، بصورت اینترفیس و در حالت سلسله مراتب توارث پیاده سازی شوند یا خیر.. ، تشخیص اینکه از کلاسها و متدهای جنریک آماده net framework در کجا و کدام کلاس یا متد استفاده باید بشود و… ) و در نهایت راه حل بهینه و پیاده سازی الگوریتم برای حل مسئله ای که در قالب متدی از یک کلاس خاص پیاده سازی میشود. چه باید کرد. آیا میتوان فرمول بخصوصی را تعیین کرد و فرمهایی از پیش آماده کرد که بر اساس یک ساختار و چارچوب معین جلو رفت و منظم و کنترل شده با پروژه برخورد کرد تا جایی که حتی بتوان زمان لازم برای انجام پروژه را ولو تقریبی به مشتری اعلام کرد؟ آیا رفرنسی برای طراحی گام به گام این مراحل وجود دارد؟ که مثلا در گام اول تعداد موجودیتها و رفتارها و ارتباطاتشان را تشخیص دهیم در گام دوم اینکه هر رفتار در قالب یک متد از چه الگوریتمی برای پیاده سازی پیروی میکند و در گام مثلا سوم استراتژی پیاده سازی کلاسها و ارتباطشان و متدهاشون چگونه باید باشد. آیا میتوان این گامها رو فرمول بندی کرد و یک چاچوب کلی برای انجام پروژه ها از پیش بر ای خودمون تعیین کنیم و سپس به فراخور نوع و امکانات پروژه بند ها و تبصره هایی به آنها اضافه کرد؟ نمیدونم آیا تونستم منظورم رو به خوبی برسونم. در واقع منظورم این هست وقتی کسی برای انجام پروژه ای به شما مراجعه میکند مراحل انجام آن رو به چه شکل چیدمان میکنید و استراتژی حل پروژه رو آماده میکنید؟ ممنون و ببخشید که زیاد شد حقیقتش این موضوع سختترین قسمت برنامه نویسی هست که مدتهاست ذهن منو مشغول کرده و کسی پاسخ درستی به من نداده متاسفانه یا نخواسته استراتژیشو لو بده.

    • ‏‏
      آرین زارعی(۶ فروردین ۱۳۹۶)

      در پاسخ به این سوالات بهتر هست که کتاب های مهندسی نرم افزار رو به دقت مطالعه فرمایید.

      • ‏‏

        جناب زارعی متاسفانه ذهن من به شدت فلسفه گرا یا به نوعی اصول گراست یعنی یا همه چیز یا هیچ چیز. وقتی وارد مبحثی شدم باید صفر تا صدش رو متوجه بشم(از بیخ و بن ریشه هاشو پیدا کنم. باور میکنید که گاهی ساعتها به روی یه مثالی که در جلسه ای از دوره مطرح کرده اید مثل مینی پروژه سرچ در جلسه سیزدهم ساعتها بررسی کرده ام که چرا مثلا شما فلان متغیر رو از نوع لیست جنریک معرفی کرده اید و با مثالهای مشابه قبلیش میسنجم که آیا میشه راه دیگه ای پیدا کرد؟ تا بتونم ذهن بازتری برای یافتن استراتژی حل مسئله پیدا کنم)لطفا یه رفرنس خوب و کاربردی برای مهندسی نرم افزار و طراحی الگوریتم حل مسائل و احیانا موارد دیگر پیرامون یافتن استراتژی پیاده سازی پروژه و حل مسائل موجود در آن، معرفی بفرمایید، طوری که گیج نشم بین منابع مختلف و گام به گام راهنماییم کنه در واقع مکمل خوبی برای دوره شما باشه. ممنون از شما

        • ‏‏
          آرین زارعی(۷ فروردین ۱۳۹۶)

          دقت خیلی مساله ی خوبی است ولی مثال های ساده ی ما نیازمند این دقت نیست. پیشنهاد میکنم انرژیتون رو برای کارای سنگین تر و پروژه های بزرگتر صرف کنید. در باره ی کتاب هم شما میتونید برای الگوریتم ها اگر علاقه مندید کتاب مقدمه ای بر الگوریتم های CLRS رو مطالعه بفرمایید. دیگه از این کتاب سنگین تر و جامع تر در این زمینه وجود نداره. البته که مباحثش فقط به درد کارای خاص میخوره و در بازار کاربردی نداره. شما در حد نیاز بازار در این دوره الگوریتم یاد گرفتید. درباره ی تحلیل و مهندسی نیاز ها و … در پایان دوره با جستجو در وب منابع مناسبی رو پیدا میکنید.

  • ‏‏

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

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

    ورود/عضویت سریع با اکانت فیسبوک/جیمیل شما

    :: شما می توانید با استفاده از اکانت یاهو یا جیمیل خود به صورت کاملا امن، سریع و بدون نیاز به ورود اطلاعات عضو و وارد سایت شوید. در این صورت هیچ نیازی به ورود نام کاربری و رمز عبور خود نخواهید داشت و هویت شما از طریق ایمیلتان مورد تائید قرار می گیرد .
    برای استفاده از این روش باید در اکانت گوگل(جیمیل) و یا یاهوی خود لاگین باشید .
    عضویت/ ورود سریع با :
    در حال اتصال ...

    ورود به سایت

    ورود سریع با :
    در حال اتصال ...

    جستجو در سون لرن

    عبارت :
    7LearnTelegram