تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Inline out variables in C# 7.0
#1
بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))


 Inline out variables in C# 7.0

كما نعلم أنه في الاصدارات السابقة من لغة C#.NET توجد كلمة مفتاحية باسم (out) ومن خلالها نستطيع اسناد قيمة الى متغير من متغير موجود في نطاق آخر كما في المثال التالي:

PHP كود :
using static System.Console;

namespace 
InlineOutVars
{
 
   class Program
    
{
 
       static void Main(string[] args)
 
       {
 
           int output;
 
           Method(out  output);
 
           WriteLine(output);
 
           ReadKey();
 
       }

 
       private static void Method(out int x)
 
       {
 
           x 5;
 
       }
 
   }




في المثال أعلاه الناتج سيكون (5) وهنا تتسائل: لماذا الناتج (5)؟ فنحن لم نقم باسناد قيمة للمتغير (output) في الدالة الرئيسية. هنا سأجيبك: أنه هذه هي وظيفة الكلمة المفتاحية (out) فهي تقوم بربط المتغير في الدالة الرئيسية بالمتغير في الدالة الفرعية لنفس العنوان في الذاكرة لذا سيكون الناتج (5).



طيب الى هنا فهمنا وظيفة الــ (out). ما علاقة المثال بموضوعنا؟



العلاقة أنه في الاصدار الجديد من لغة C# 7.0 قاموا باضافة بعض التحسينات للـــ (out) بجعلها 

Inline out variable بمعنى أنه تستطيع تعريف متغير وجعلها out في نفس سطر الاستدعاء للدالة أي تعريفها كـــ (Argument out variable).



نفس المثال أعلاه بالطريقة الجديدة:

PHP كود :
using static System.Console;

namespace 
InlineOutVars
{
 
   class Program
    
{
 
       static void Main(string[] args)
 
       {
 
           Method(out int output);
 
           WriteLine(output);
 
           ReadKey();
 
       }

 
       private static void Method(out int x)
 
       {
 
           x 5;
 
       }
 
   }



في المثال الاعلاه الاختلاف بسيط جدا، كما تلاحظ أنه عند استدعائنا للدالة (Method) قمنا في نفس الدالة بتعريف المتغير وليس في سطر آخر.

ومن الملاحظ أنه المتغير المعرف داخل الدالة يعامل معاملة Local Variable بمعنى ستكون معرفة داخل النطاق أي داخل نطاق دالة (Main).

الفوائد/

  1. يعامل كــ Local Variable.
  2. تقليل عدد الاسطر البرمجية.
  3. سهولة وسرعة في الاداء.
تحياتي لكم.
الرد }}}
#2
جزاك الله خير اخي سجاد
اسأل الله العلي القدير ان يغفر لك و لوالديك . اللهم آمين
يعطيك العافية
الرد }}}
تم الشكر بواسطة: ابو ليلى , Sajad , Sajad
#3
مشكور يالطيب ،، جزاك الله خير
الرد }}}
تم الشكر بواسطة: ابو ليلى , Amir_Alzubidy , Sajad , Sajad
#4
بارك الله فيك اخي سجاد , وجزيت خيراً
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: حريف برمجة , Amir_Alzubidy , Sajad , Sajad
#5
جزاك الله خير اخي سجاد
الرد }}}
تم الشكر بواسطة: Sajad


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  Identifiers vs Variables Sajad 0 2,485 07-10-17, 08:02 PM
آخر رد: Sajad
Lightbulb طرق إجراء عملية التبديل بين حقلين (Swap Two Variables) عبد الكريم كنعان 2 2,735 31-03-16, 03:40 AM
آخر رد: myalsailamy

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم