نمایش نتایج 1 تا 4 از 4

نام تاپیک: Null-conditional operators - Conditional operator

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #2
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: Null-conditional operators

    هدف از Null-Conditional Operator کاهش کدنویسی حالات مقایسه ای مختلف با null هست .
    مثال زیر را در نظر داشته باش

    public static string Truncate(string value, int length)
    {
    string result = value;
    if (value != null) // Skip empty string check for elucidation
    {
    result = value.Substring(0, Math.Min(value.Length, length));
    }
    return result;
    }

    درون متد، شرط null نبودن را بررسی کرده درصورتی که متغییر value مخالف null باشه متد Substring آن فراخوانی میشود.(اگر null باشد با خطا مواجه خواهد شد).در صورتی بخواهیم همان عملکرد کد را بصورت ساده تر نوشته شود کد بالا را بصورت زیر ساده تر بتویسیم

    public static string Truncate(string value, int length)
    {
    return value?.Substring(0, Math.Min(value.Length, length));
    }

    در متد اصلاح شده همان عملکرد اما بصورت ساده تر نوشته میشود.در صورتی value نال باشد ،مقدار null برگشت داده میشود و در صورت null نبودن متدSubstring آن فراخوانی میشود و مقدار برگشتی متد را بازگشت خواهد کرد.

    در مثالی دیگر چند حالت چک کردن null باهم در if چک میشود

    var response = someProxy.SomeWebMethod();
    // so many layers, so many potential nulls...
    if (response != null && response.Results != null && response.Results.Status == Status.Success)
    {
    Console.WriteLine("We were successful!");
    }

    اگر آبجکت response مخالف null و ابجکت داخلی آن Results مخالف null باشد انگاه پراپرتی Status ان بررسی میشود که بصورت Null-Conditional Operator نوشته شود

    var response = someProxy.SomeWebMethod();
    // so much better!
    if (response?.Results?.Status == Status.Success)
    {
    Console.WriteLine("We were successful!");
    }
    آخرین ویرایش به وسیله ژیار رحیمی : شنبه 11 آذر 1396 در 20:14 عصر
    First,solve the problem then write the code

تاپیک های مشابه

  1. The C#‎ ?? null coalescing operator (and using it with LINQ)
    نوشته شده توسط dot_net_lover2 در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: دوشنبه 09 مهر 1386, 11:25 صبح
  2. خطای Operation in not allowed the object is closed
    نوشته شده توسط shsoft در بخش VB.NET
    پاسخ: 1
    آخرین پست: پنج شنبه 04 دی 1382, 10:29 صبح
  3. Overriding operators
    نوشته شده توسط Farhad.B.S در بخش C#‎‎
    پاسخ: 4
    آخرین پست: جمعه 04 مهر 1382, 13:06 عصر
  4. with operator
    نوشته شده توسط Sohrab_Tapar در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: شنبه 08 شهریور 1382, 22:18 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •