التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 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. سهولة وسرعة في الاداء.
تحياتي لكم.
الرد }}}


الردود في هذا الموضوع
Inline out variables in C# 7.0 - بواسطة Sajad - 19-07-17, 03:14 PM
RE: Inline out variables in C# 7.0 - بواسطة Amir_Alzubidy - 20-07-17, 02:51 AM
RE: Inline out variables in C# 7.0 - بواسطة حريف برمجة - 20-07-17, 03:51 AM
RE: Inline out variables in C# 7.0 - بواسطة ابو ليلى - 20-07-17, 12:18 PM
RE: Inline out variables in C# 7.0 - بواسطة nani49 - 10-11-17, 07:18 PM

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

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


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