درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من

    تا 75 درصد تخفیف ویژه شب یلدا بر روی کلیه محصولات وب سایت توسینسو فقط تا 30 آذر

    مانده تا پایان تخفیف ها

    تخفیف های وب سایت
    همه تخفیف ها

    عضویت در

    کانال تلگرام

    توسینسو

    اطلاعات مطلب
      مدرس/نویسنده
      فرهاد خانلری
      امتیاز: 146456
      رتبه:5
      2
      322
      548
      3272
      فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ... پروفایل کاربر
      دوره های مرتبط
      دوره های توسینسو دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 27 قسط خریداری کنید
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      مدرس: ایمان جوادی
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 78 قسط خریداری کنید
      دوره آموزشی طراحی رابط کاربری با JavaFX
      دوره آموزشی طراحی رابط کاربری با JavaFX
      مدرس: حسام رسولیان
      این دوره را در 13 قسط خریداری کنید
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 18 قسط خریداری کنید
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      مدرس: مهدی عادلی فر
      این دوره را در 2 قسط خریداری کنید
      دوره آموزشی ساخت ربات تلگرام
      دوره آموزشی ساخت ربات تلگرام
      مدرس: کاظم تقندیکی
      این دوره را در 8 قسط خریداری کنید
      دوره آموزشی Exploit نویسی به زبان Perl
      دوره آموزشی Exploit نویسی به زبان Perl
      مدرس: ایمان جوادی
      این دوره را در 7 قسط خریداری کنید
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      مدرس: کاظم تقندیکی
      این دوره را در 20 قسط خریداری کنید
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 23 قسط خریداری کنید
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      مدرس: کاظم تقندیکی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      مدرس: امیر حسین فضلیخانی
      این دوره را در 12 قسط خریداری کنید

      تغییرات جدید در سی شارپ C#.NET 6.0

      تاریخ 43 ماه قبل
      نظرات 0
      بازدیدها 1245
      قابلیت های جدید زبان سی شارپ

      در این مطلب قصد دارم خدمت برنامه نویسان عزیز تغییرات زبان برنامه نویسی سی شارپ رو که در نسخه 6 انجام شده معرفی کنم و این تغییرات در 8 آیتم طبقه بندی شده که در ادامه با ذکر مثال هم به صورت کد قدیم و هم به صورت کد جدید این مطلب رو ادامه خواهم داد. اگر یادتان باشد قبلاً در انجمن نسل جدید کامپایلر های دات نت Roslyn رو معرفی کرده بودم و باید بدانید نسخه ششم از سی شارپ بر پایه این کامپایلر است برای اطلاعات بیشتر لینک فوق را مشاهده کنید.
      قابلیت های جدید در زبان سی شارپ

      ویژگی های سی شارپ جدید


      Auto Property Initializer


      اگر خاطرتان باشد قبلاً زمانی که یک property معرفی میکردیم باید در سازنده کلاس به آن را مقدار دهی میکردیم ولی در نسخه جدید میتوان زمان تعریف یک Property به آن یک مقدار اولیه تخصیص داد در پایین نمونه کد قبلی را میتوان دید
      public class Employee
      {
          public Guid EmpId {get;set;}
          public Employee()
          {
              EmpId = Guid.NewGuid();
          }
      }
      
      و در ادامه نمونه کد جدید(C# 6.0) رو میتونید ببینید
      public class Employee
      {
          public Guid EmpId {get;set;} = Guid.NewGuid();
      
          //Works with read only property also
          public string FullName{get;} = "Farhad Khanlari";
      }
      

      Expression-bodied Members


      اگر شما یک Method یا یک Property دارید که آن متد یا پروپرتی دارای فقط یک خط دستور باشد می‌توانید به جای علامت {} ازبزرگتر مساوی => استفاده کنید ، کد نسخه‌ قبلی Method را ببینید:
      public void PrineName()
      {
          Console.Writeline(emp.FullName);
      }
      
      و در ادامه کد نسخه‌ قبلی Property را با هم ببینیم:
      public string FullName { get {return emp.FirstName + em.LastName; } }
      
      و برای قابلیت Expression-bodied Members در کد جدید ورژن 6 که مخصوص Method هست رو با هم ببینیم:
      public void PrineName() => Console.Writeline(emp.FullName);
      
      مثالی از کد جدید(C# 6.0) نمونه خاصیت Property
      public string FullName => emp.FirstName + emp.LastName;
      

      String Interpolation


      رشته ها یا String ها نیز در این نسخه با پیشرفت روبرو بودند و این قابلیت برای الحاق آنها کاربرد دارد و در ادامه مثالی دذر همین خصوص جهت آشنایی شما وجود دارد،ابتدا کد قدیمی را ببینید
      string fullname = "Farhad Khanlari"
      Console.Writeline("Name - " + fullname);
      
      کد جدید 6 #c
      string fullname = "Farhad Khanlari"
      Console.Writeline("Name - \{fullname}" );
      
      با کمی دقت میتوان دریافت که در این قابلیت نام یا همان اسم متغیر را پس از اس علامت بک اسلش \ داخل آکولاد {} نوشت.

      Using Static Class import


      در نسخه C# 6.0 قابلیت دیگری اضافه شده که شما برنامه نویسان عزیز میتوانید کلاس‌هایی از نوع static را در لیست using ها قرار دهید که البته این کار در نسخه های قدیمی تر اصلاً وجود نداشت ، مثلاً زمانی که شما میخواستید WriteLine را بنویسید حتماً باید Console را در قبل این دستور به کار میبردید و فقط میتوانستید System را در Using ها استفاده کنید و کد زیر مثالی در همین خصوص است.
      using System.Console;
      
        class Program
          {
              static void Main(string[] args)
              {
                  //Using WriteLine directly instead of 
                  // Console.WriteLine
                  WriteLine("Farhad Khanlari with itpro");
              }
          }
      

      Exception Filters


      اگر میخواهید برنامه ای که مینویسید حرفه ای باشد باید از دستورات Catch بهره بگیرید تا بتوانید برنامه ای خوب و کاربر پسند داشته باشید و برنامه شما به هر دلیلی با خطا متوقف نشود Exception یا استثنائات در هر برنامه ای وجود دارد ولی در این نسخه میتوانید این قابلیت را فیلتر کنید مثلاً اگر فلان شرط برقرار بود دستورات Catch اجرا گردد
      {
          throw new MyException { Severity = 3 };
      }
      catch (MyException ex) if (ex.Severity == 2)
      {
          Console.WriteLine("Will not execute");
      }
      catch (MyException ex) if (ex.Severity == 3)
      {
          Console.WriteLine("Will be executed");
      }
      

      Dictionary Initializer


      در نسخه جدید مقداردهی به ساختمان‌ داده‌ ای که از نوع Dictionary هست ساده تر و بهتر صورت می پذیرد.
      Dictionary<string, string> eplTeams = new Dictionary<string, string>()
      {
          { "ITPRO", "IT" },
          { "Programing", "PRO" },
          { "professional", "ITPRO" }
      };
      

      و در کد زیر کد C# 6.0 را برای این قابلیت خواهید دید

      Dictionary<string, string> eplTeams = new Dictionary<string, string>()
      {
          ["ITPRO]  =  "IT",
          ["Programing"] =  "PRO",
          ["professional"] = "ITPRO"
      };
      
      

      Await in Catch block


      در نسخه های قبلی نیز با استفاده از await در بلوک catch خیلی کمک میکرد به برنامه نویس که در این نسخه با ذخیره LOG در فایل یا دیتا بیس با کمی تغییرات مواجه شده که در ادامه مثالی از آن را با هم خواهیم دید
      try
      {
          DoWork()
      }
      catch (Exception ex)
      {
          await Log.WriteDatabase(ex);
      }
      

      Null Conditional Operator


      حتماً شما نیز برنامه نویسی هستید که زیاد چک میکنید که آیا فلان فیلد خالی است یا خیر یا بررسی میکنید که کاربر باید آن فیلد را پر کند سپس به صفحه بعدی برود در این نسخه عملگر ? و ?? برای کوتاه شدن و خلاصه نویسی و راحتی کار اضافه شده است در ادامه ابتدا کد قدیمی و سپس کد نسخه جدید را مشاهده خواهید نمود.

      if (employee != null && employee.ContactDetails != null)
      {
          Console.WriteLine(employee.Name + "-" + employee.ContactDetails.Address);
      }
      
      کد جدید C# 6.0
      Console.WriteLine(employee?.Name + "-" + employee?.ContactDetails?.Address?? " No Details");
      
      اگر یادتان باشد ما میتوانستیم و "میتوانیم" از ؟ به صورت if های خلاصه شده و کوتاه به صورت inline استفاده کنیم که مشابه ان دستور را در اینجا خواهیم داشت ، دستور employee?.Name میگوید اگر خاصیت Name برابر با null نباشد مقدار آن را برگردان. چنانچه طرف چپ عملگر ?? برابر با null باشد، آنگاه مقدار سمت راست را برمی‌گرداند. در غیر این صورت همان مقدار سمت چپ برگشت داده می‌شود.
      در ادامه سایت های زیر جهت اطلاعات بیشتر خدمتتان معرفی میگردد.

      نویسنده : فرهاد خانلری
      منبع : انجمن تخصصی فناوری اطلاعات ایران
      هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
      برچسب ها
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      هیچ نظری ارسال نشده است

        برای ارسال نظر ابتدا به سایت وارد شوید