موصى به, 2021

اختيار المحرر

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

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

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

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

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

"المرجع" هو معدّل معلمات يستخدم عندما تكون هناك حاجة لاستدعاء طريقة مع استدعاء كل مرجع. عندما نريد أن تعكس التغييرات التي أجريت على الوسيطات داخل أسلوب مسمى في القيمة الأصلية لهذا المتغير ، عندئذ يتم استخدام معدّل المعلمة 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 before method call:" + a)؛ ob.Square (ref a)؛ // used ref Keyword Console.WriteLine ("a after call:" + a)؛ }} / output a قبل استدعاء الأسلوب: 10 a أسلوب استدعاء بعد: 100 

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

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

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

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

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

 باستخدام النظام class DemoOut {int intomodation (public int Decompose (double x، out double double) {int whole_num؛ whole_num = (int) x؛ كسر = س - whole_num ؛ return whole_num؛ }} class Out_maint {static void Main () {DemoOut ob = new DemoOut ()؛ int i ؛ frac مزدوجة i = ob.Decompose (100.125، out frac)؛ // used out keyword Console.WriteLine ("Whole number part is" + i)؛ Console.WriteLine ("جزء الجزء هو" + frac)؛ }} // output integer part is 100 Fractional part is 0.125 

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

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

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

الاختلافات الأساسية بين Ref و Out في C #

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

استنتاج:

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

Top