الفرق بين المرجع والخروج في C #

مؤلف: Laura McKinney
تاريخ الخلق: 2 أبريل 2021
تاريخ التحديث: 23 أبريل 2024
Anonim
Difference between ref and out in C Sharp
فيديو: Difference between ref and out in C Sharp

المحتوى


"المرجع" و "الخروج" هما معدّلات المعلمات المستخدمة في C #. باستخدام المرجع والخروج ، يمكنك تمرير أي نوع قيمة بالرجوع إلى أي طريقة. يقدم سبب تمرير أي نوع قيمة حسب المرجع الفرق الرئيسي بين الكلمة الأساسية ref و out. ال المرجع الكلمة الأساسية تسمح للطريقة التي تم استدعاؤها بتغيير محتوى الوسيطة التي تم تمريرها إليها باستخدام الكلمة الأساسية ref. ال خارج الكلمة الرئيسية تتيح للطريقة التي يتم استدعاؤها إرجاع أكثر من قيمة في مكالمة واحدة. دعنا ندرس الفرق بين المرجع والخروج مع مخطط المقارنة.

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

رسم بياني للمقارنة

أساس للمقارنةالمرجعخارج
الأساسيلأنها تتيح التغيير في قيمة وسيطة المضي قدما مع المرجع الكلمة.يسمح لطريقة لإرجاع تلك القيم مسبوقة بكلمة رئيسية خارج.
التهيئةيجب تهيئة المعلمة ref قبل استدعاء الأسلوب.يجب تهيئة المعلمة خارج داخل الأسلوب الذي تم استدعاؤه قبل أن ينتهي.
إعلانيتم تعريف المعلمة المراد تغييرها بطريقة ما كمرجع بينما يتم الإعلان عن الطريقة وطريقة الاتصال.يجب تعريف المعلمة المراد إرجاعها كمرجع أثناء إعلان الطريقة واستدعاء الطريقة.


تعريف كلمة المرجع المرجع

"المرجع" عبارة عن معدِّل معلمات يستخدم عندما تكون هناك حاجة إلى استدعاء طريقة مع إشارة مرجعية. عندما نريد أن تنعكس التغييرات التي تم إجراؤها على الوسيطات داخل طريقة تسمى في القيمة الأصلية لهذا المتغير ، فسيتم استخدام معدل معامل المعلمة ref. يسبق نوع القيمة الذي نريد إعلانه كمرجع الكلمة الرئيسية "ref" أثناء إعلان الطريقة ، وطريقة الاتصال. يمكن الإعلان عن أكثر من معلمة كـ "مرجع" أثناء الاتصال وإعلان الطريقة.

باستخدام النظام ؛ class DemoRef {public void Square (ref int s) {s = s * s؛ }} class Ref_main {static void Main () {DemoRef ob = new DemoRef ()؛ int a = 10 ؛ Console.WriteLine ("استدعاء الأسلوب قبل:" + a) ؛ ob. مربع (المرجع a) ؛ // Used ref Keyword Console.WriteLine ("a after call:" + a)؛ }} // output a before call call: 10 a after call call: 100

في التعليمة البرمجية أعلاه ، يتم تمرير المتغير 'a' كوسيطة إلى الأسلوب Square (ref a) مع مُعدل المعلمة ref المرفق به. يعني أيًا كانت التغييرات التي ستقوم بها Square (ref a) في المتغير "a" بداخلها ستنعكس بالقيمة الأصلية لـ "a" ، خارج الطريقة أيضًا.


هناك بعض النقاط المهمة التي يجب تذكرها عند التعامل مع معدِّل المعلمة "ref".

  • يجب تهيئة الوسيطة التي تقوم بتمريرها بواسطة المرجع إلى طريقة ما قبل استدعاء الأسلوب.
  • يجب ألا تقوم الطريقة بتعيين القيمة الأولية لوسيطة المرجع.
  • يمكنك أيضًا استخدام المرجع مع المتغير المرجعي أيضًا.

تعريف كلمة خارج

في كل مرة تقوم فيها باستدعاء طريقة ما ، فإنها تُرجع قيمة واحدة فقط. إذا كنت تريد طريقة لإرجاع أكثر من قيمة في مكالمة ، فيجب استخدام الكلمة "خارج" مع المعلمات التي تريد إرجاعها عند إنهاء الطريقة. في بعض الأحيان ، عندما لا نريد تمرير أي شيء إلى الطريقة ولكن نريد أن تعيد الطريقة شيئًا ما نستخدم معلمات بكلمة رئيسية خارج.دعنا نفهم ذلك بمثال.

باستخدام النظام ؛ class DemoOut {public int Decompos (double x، out double fraction) {int whole_num؛ whole_num = (int) x ؛ الكسر = x - whole_num ؛ إرجاع whole_num ؛ }} class Out_maint {static void Main () {DemoOut ob = new DemoOut ()؛ أنا فارك مزدوجة. i = ob.Decompose (100.125، frac)؛ // used out الكلمات الأساسية Console.WriteLine ("جزء العدد بالكامل هو" + i)؛ Console.WriteLine ("جزء الكسر" + frac) ؛ }} // إخراج عدد صحيح هو 100 جزء كسري هو 0.125

في التعليمات البرمجية أعلاه ، يتم إرجاع قيمتين بواسطة ، الأسلوب Decompose (). إحداها تُرجع بالكلمة الرئيسية "رجوع" ، بمعنى whole_num ، وأخرى تُرجع معلمة تسبقها الكلمة الأساسية الخارجة أثناء استدعاء الأسلوب ، مثل "frac".

النقاط المهمة التي يجب تذكرها حول الكلمة الرئيسية.

  • على عكس كلمة ref ref ، يجب عدم تهيئة المعلمة التي تستخدم out قبل استدعاء الطريقة.
  • ستقوم الطريقة التي تم استدعاؤها في حد ذاتها بتعيين قيمة للمعلمة باستخدام كلمة أساسية خارج حيث يتم اعتبارها غير مخصصة داخل الطريقة التي يتم استدعاؤها بمعنى أنه ليس لها قيمة مبدئية.
  • يجب أن تقوم الطريقة التي تم استدعاؤها بتعيين قيمة لمعلمة الخروج قبل إنهاء الطريقة.
  • تنطبق الكلمة الرئيسية للخارج أيضًا على المتغير المرجعي.
  1. عندما يتم تمرير متغير يسبقه كلمة المرجع إلى أي طريقة ، فإن التغييرات التي أدخلت عليه داخل الطريقة تنعكس في قيمتها الأصلية. عندما يسبق المتغير الذي تم تمريره إلى طريقة ما كلمة رئيسية خارجة ، فإن الطريقة تُرجعها دون استخدام كلمة رئيسية.
  2. يجب تهيئة المعلمة ref قبل نقلها إلى طريقة. من ناحية أخرى ، يجب تهيئة معلمة الخروج داخل الطريقة التي يتم تمريرها إليها.
  3. أثناء استدعاء أو التصريح أو تحديد الطريقة ، يتم تعريف المعلمة ref بشكل صريح على أنها ref. من ناحية أخرى ، أثناء استدعاء أو التصريح أو تحديد طريقة ما ، يتم التصريح بشكل واضح بأنها خارج.

خاتمة:

كلما تم تمرير المتغير بالرجوع إلى طريقة ، يمكن استخدام الكلمة الأساسية ref و out. وحيث أن سبب استخدام كلتا الكلمات الرئيسية مختلفًا حيث يمكن استخدام الكلمة الأساسية ref لتغيير قيمة الوسيطة التي تسبقها الكلمة الأساسية ref ، وتم تمريرها إلى الطريقة التي تم استدعاءها ، ويتم استخدام الكلمة الأساسية out لإرجاع قيمة الوسيطة السابقة عن طريق الكلمة خارج.