الـ Tuples في الدوت نت

05 مارس 2017     426 مشاهدة    2 تعليق
تم النشر في #Tuples 

سنتعرف اليوم على الصفوف او الـ Tuples في الدوت نت, ماهي؟ وما اهميتها؟ وكيفية إستخدامها؟

يمكن الكثير من مبرمجين الدوت نت لا يعرفوا ما هو الـ Tuple وإن سمع بها يمكن لم يصادفه الحظ ان يستخدمها في احد برامجه, لقصر مداركه او معارفه بأهميه الـ Tuples.

الـ Tuples بإختصار هو احدى انواع البيانات في الدوت نت والذي يمكن من تجميع بيانات متلعقه ببعضها البعض, مثل الفئات Classes والهياكل Structures. فهو يقوم بتقليل العبء والصعوبات خصوصا إذا اردنا تجميع بيانات فبدل أن نقوم بإنشاء فئه يمكننا إستخدام هذا النوع الجديد.

طبعاً هنالك أسباب قد تدعونا إلى إستخدام الـ Tuples فلنفترض أننا نريد إرجاع أكثر من قيمة من دالة معينه, فالمعروف أن الدالة تقوم بإرجاع قيمة وحيدة, لكن بإستخدام الـ Tuples يمكننا هذا, طبعاً قد يسأل البعض ويقول يمكننا إنشاء فئة, بالطيع يمكنك لكن عليك أن تنشيء الفئة بنفسك, وتقوم بتعريف كائن منها وتدير أنواع بيانات كل متغير أو خاصيه فيها, لهذا يمكن نقول أن الـ Tuple هو تحسين وإضافة لتسهيل الصعوبات التي قد نواجهها بعض الأحيان.

دعونا نتطرق إلى مثال بسيط لمعرفة كيفية إنشاء الـ Tuple وإستخدامه.

Dim tuple As New Tuple(Of Integer, String)(123, "Hisham")

Console.WriteLine(tuple.Item1) ' 123
Console.WriteLine(tuple.Item2) ' Hisham

ففي المثال السابق قمنا بتعريف Tuple ليحتوي على بيانات جواز السفر على سبيل المثال والذي يحمل قيمتين رقم الجواز, وإسم صاحب الجواز, فهو شبيه زي أي نوع آخر في الدوت نت إلا أنه يتم تحديد أنواع البيانات بإستخدام الـ Generics.

حيث ان القيمة الأولى تحمل إسم الحالة والقيمة الثانية تحمل الكود الخاص بالحالة, وعلى أساس الإستجابة للطلب الحالي يمكننا إرجاع القيم من الدالة التي سيتم إنشاءها.

الملاحظه الآخرى التي يمكن أن نلاحظها هي إستخدام الخواص Item1, Item2 .. إلخ. ببساطه هذه ماهي إلا خواص تساعد المبرمج في زمن كتابة البرنامج للوصول إلى عناصر الـ Tuple حسب ترتيب القيم التي تم تعريفها.

لنأخذ مثال آخر أكثر وضوحاً من السابق, لنفترض ان هنالك متطلب في أحد البرامج وهو فحص الـ Response وبناء عليه يتم إرجاع حالة الـ HTTP والكود الخاص به, فهنا يمكننا ببساطه تجميع حالة وكود الـ HTTP بإستخدام الـ Tuple على النحو التالي:

Dim httpTuble As Tuple(Of String, Int)

وبعدها نقوم بإنشاء دالة تقوم بفحص الـ Response وعلى أساسه تقوم بإرجاع القيمة المناسبة.

Function GetHttpStatus(ByVal response As Response) As Tuple(Of String, Int)
  Select response.StatusCode
    Case 200
      Return new Tuple(Of String, Integer)("Ok", 200)
    Case 404
      Return new Tuple(Of String, Integer)("Not Found", 404)
    ...
  End Select
End Function

طبعاً ما تم التطرق إليه اليوم ماهو إلى جزء ومقدمة بسيطه عن الـ Tuples لذا أترك لكم التعمق في هذا الموضوع.

بعد اليوم يمكن الكثير منا عنده شغف في إستخدام الـ Tuples, والإستغناء عن بعض الأكواد التي تمت كتابتها في برامج سابقة بسبب عدم إحاطتنا بهذا النوع الذي سهل بعض السيناريوهات في البرمجة خصوصاً عند إحتياجنا لتجميع بيانات مترابطه ومعاملتها كوحده واحده.

وفي الأخير مجرد وجهة نظر شخصية لا أكثر .. لا أحبذ إستخدام الـ Tuple خصوصاً إذا كانت عدد البيانات المراد تجميعها كثيره, لأن الخواص Item1, Item2 .. ItemN قد تسبب إشكالية كبيره, خصوصاً في تتبع وصيانة البرنامج.

تويتر فيسبوك قوقل + لينكد إن


2 تعليق

GuestEpita (16/11/2017 10:51:32 ص)

guest test post
bbcode
html
http://gdhyuei23kol.com/ simple

ScottBaf (16/11/2017 11:50:51 ص)

Hello. http://jakshgy773733.us


اكتب تعليقك