![]() |
|
Tuple Return Type in C#7.0 - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم مقالات C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=177) +--- الموضوع : Tuple Return Type in C#7.0 (/showthread.php?tid=21149) |
Tuple Return Type in C#7.0 - Sajad - 22-07-17 بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي أمري وأحلل عقدة من لساني يفقهوا قولي))
Tuple Return Type in C#7.0
أحببت اليوم أن أتلكم عن ميزة جديدة في لغة C#.NET ألا وهي (Tuple Return Type) طبعا هذه الميزة أتت في الاصدار C#.NET 7.0 وبيئة التطوير VisualStudio 2017.
طيب ماذا تعني (Tuple Return Type)؟
هي ميزة تتيح لك أن تكتب دالة ترجع أكثر من قيمة. (Multi Return Function).
لنبيّن ذلك بمثال: تخيل أنه لديك جدول (EmpTbl) وتريد أن تكتب دالة ترجع (Ename, Esal) اعتمادا على الــ(ID). المشكلة التي تواجهك هنا أنه كيف لي أن أقوم بكتابة دالة ترجع أكثر من قيمة؟ الحل هو باستخدام (Tuple Return Type).
طيب لنتعرف كيف تستخدم هذه الميزة:
قبل كل شيء يجب أن تضيف مكتبة: system.ValueTuple من NuGet لتتمكن من استخدام هذه الميزة.
1- صيغة كتابة الدالة تكون بالشكل التالي:
PHP كود : (datatype, datatype,....) FuncName(parameter)والاستدعاء تكون بلشكل التالي:
PHP كود : var func=FuncName(argument)ملاحظة/ من الممكن استخدام (Named Argument) فتكون صيغة كتابة الدالة بالشكل التالي:
PHP كود : (datatype dataname, datatype dataneme,....) FuncName(parameter)والاستدعاء ستكون بالصيغة التالية:
PHP كود : var func=FuncName(argument)ويفضل أن تستخدم الطريقة الثانية.
مثال توضيحي:
PHP كود : using System;والحمد لله رب العالمين
RE: Tuple Return Type in C#7.0 - Sajad - 23-07-17 نعم من الممكن أن استرجاع اكثر من ذلك، وبأي نوع من انواع البيانات. بالنسبة لسؤال لا يحتاج الى Tuple Return لذا ستكون دالة ارجاع الصورة بهذا الشكل: PHP كود : private Image ConvertToImage(byte[] imgBytes)RE: Tuple Return Type in C#7.0 - Sajad - 23-07-17 ويبارك فيك ايضا اخي الكريم ببساطة الحل سيكون بهذا الشكل: PHP كود : PicBox.Image = ConvertToImage((byte[])myRow["Emp_Image"]); هذا طبعا اثناء استدعاء الدالة ستمرر له حقل الimage كمصفوفة من bytes وهذا يعتمد على الطريقة التي تجلب بها حقل الصورة من الجدول، انا اساتخدمت DataRow لجلب البيانات لهذا ترى اسم المتغير myRow.
أما اذا اردت ان تدمج ارجاع الصورة مع المعلومات باستخدام Tuple Return سيكون الحل بهذا الشكل:
PHP كود : static (string Ename, double Esal,Image Img) EmpSearch(int ID)ImageBytes: عبارة عن Property داخل الكلاس من نوع byte[].
تحياتي لكم
|