ההבדל בין ref ו- out ב- C #

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 2 אַפּרִיל 2021
תאריך עדכון: 5 מאי 2024
Anonim
WHY I STILL LIVE IN MEXICO (4 YEARS LATER)
וִידֵאוֹ: WHY I STILL LIVE IN MEXICO (4 YEARS LATER)

תוֹכֶן


"Ref" ו- "Out" הם שינויי הפרמטרים המשמשים ב- C #. באמצעות ref and out, אתה יכול להעביר כל סוג ערך לפי התייחסותו לשיטה כלשהי. הסיבה להעברת סוג ערך כלשהו לפי הפניה מציגה את ההבדל העיקרי בין מילת המפתח ref ו- out. ה ref מילת המפתח מאפשרת לשיטה הנקראת לשנות את תוכן הטיעון המועבר אליו באמצעות מילת המפתח ref. ה בחוץ מילת המפתח מאפשרת לשיטה הנקראת להחזיר יותר מערך אחד בשיחה יחידה. בואו ונבדוק את ההבדל בין שחרור לחוצה יחד עם תרשים השוואה.

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה

בסיס להשוואהשבחוץ
בסיסיזה מאפשר שינוי בערך של טיעון שהועבר עם מילת המפתח ref.זה מאפשר לשיטה להחזיר את הערכים שקדמה להם מילת מפתח מחוץ.
אתחוליש לאתחל את פרמטר ה- ref לפני שיחת השיטה.יש לאתחל את פרמטר החוץ בתוך השיטה הנקראת לפני שהוא מסתיים.
הצהרההפרמטר שיש לשנות על ידי שיטה מוכרז כ ref בעוד הצהרת שיטה וקריאת שיטה.יש להכריז על הפרמטר שיוחזר כ- ref בעת הצהרת שיטות וקריאת שיטות.


הגדרת מילת המפתח

"Ref" הוא שינוי פרמטר המשמש כאשר יש צורך להתקשר לשיטה עם קריאה לפי הפניה. כשאנו רוצים שהשינויים שבוצעו בטיעונים בתוך שיטה שנקראת חייבים לשקף בערך המקורי של אותו משתנה, אז נעשה שימוש בפרמטר ref. לפני סוג הערך שברצוננו להכריז כסימן "ref" קדמה מילת המפתח "ref" במהלך הצהרת שיטות וקריאת שיטות. ניתן להכריז על יותר מפרמטר אחד כ- "ref" תוך כדי שיחה והצהרה של שיטה.

באמצעות מערכת; class DemoRef {כיכר חלל הציבור (ref ref s) {s = s * s; }} class Ref_main {static void Main () {DemoRef ob = DemoRef חדש (); int a = 10; Console.WriteLine ("שיחת שיטה לפני:" + a); ob.Square (ref a); // השתמשו בקונסולת מילות המפתח ref.WriteLine ("שיחה אחרי:" + a); }} // פלט א לפני שיחת שיטה: 10 א לאחר שיחת שיטה: 100

בקוד לעיל המשתנה 'a' מועבר כוויכוח לשיטת ריבוע (ref a) יחד עם ref modifier parameter המצורף אליו. זה אומר שכל מה שמשנה את השיטה ריבוע (ref a) יבצע על המשתנה 'a' שבתוכו ישקף בערך המקורי של 'a', גם מחוץ לשיטה.


ישנן כמה נקודות חשובות שצריך לזכור כשמדובר בשינוי הפרמטרים "ref".

  • יש לאתחל את הטיעון שאתה מעביר את השופט לשיטה לפני ביצוע השיטה.
  • אסור שהשיטה צריכה להקצות את הערך הראשוני לטענת ref.
  • אתה יכול גם להשתמש ref יחד עם משתנה הייחוס גם.

הגדרת מילת המפתח החוצה

בכל פעם שאתה קורא לשיטה, היא תחזיר ערך יחיד בלבד. אם אתה רוצה ששיטה תחזיר יותר מערך אחד בשיחה, יש להשתמש במילת המפתח "החוצה" יחד עם הפרמטרים שברצונך להחזיר בחזרה עם סיום השיטה. לפעמים זה המקרה שכאשר איננו רוצים להעביר שום דבר לשיטה אלא רוצים שהשיטה תחזיר משהו אנו משתמשים בפרמטרים עם מילת מפתח החוצה.בואו נבין זאת עם דוגמא.

באמצעות מערכת; הדגמה בכיתה {ציבורי אינט פירוק (x כפול, חלק שבר כפול) {int שלם_מספר; total_num = (int) x; שבריר = x - שלם_מספר; להחזיר את כל המספר; }} class Out_maint {static void Main () {DemoOut ob = new DemoOut (); int i; frac כפול; i = ob. פירוק (100.125, מחוץ למחאה); // השתמשו במילת המפתח Console.WriteLine ("חלק המספר המלא הוא" + i); Console.WriteLine ("חלק השבר הוא" + frac); }} // פלט חלק שלם שלם הוא 100 חלק חלקי הוא 0.125

בקוד לעיל, שני ערכים מוחזרים על ידי השיטה פירוק (). כזו שהיא מחזירה על ידי מילת המפתח "החזרה", כלומר שלם_מספר, ואחרת היא מחזירה פרמטר שקודם למילת המפתח החוצה בזמן ששיטה קוראת, כלומר "frac".

הנקודות החשובות שיש לזכור לגבי מילת המפתח החוצה.

  • בשונה ממילת מפתח, אסור לאתחל את הפרמטר המשתמש במילת המפתח לפני שיחת שיטה.
  • השיטה הנקראת עצמה תקצה ערך לפרמטר עם מילת מפתח החוצה מכיוון שהיא נחשבת כלא מוקצה בתוך השיטה הנקראת, כלומר ההנחה היא שאין לה ערך ראשוני.
  • על השיטה הנקראת להקצות ערך לפרמטר out לפני שהשיטה מסתיימת.
  • מילת המפתח החוצה מתאימה גם למשתנה הייחוס.
  1. כאשר משתנה שקודם למילת המפתח ref מועבר לשיטה כלשהי, השינויים שבוצעו בו בתוך השיטה משקפים בערך המקורי. כאשר לפני משתנה שהועבר לשיטה קודמת מילת המפתח החוצה, השיטה מחזירה אותו מבלי להשתמש במילת מפתח להחזיר.
  2. יש לאתחל את פרמטר ה- ref לפני שהוא מועבר לשיטה. מצד שני, יש לאתחל את פרמטר ה- out בתוך השיטה שאליה הוא מועבר.
  3. בעת קריאה, הכרזה או הגדרת שיטה, פרמטר ref מוצהר במפורש כ- ref. לעומת זאת, תוך כדי קריאה, הכרזה או הגדרת שיטה, פרמטר החוצה מוצהר במפורש כמוצא.

סיכום:

בכל פעם שהמשתנה יועבר על ידי הפניה לשיטה, ניתן להשתמש במילת המפתח ref ו- out. ואילו, הסיבה לשימוש בשתי מילות המפתח היא שונה כאשר ניתן להשתמש במילת המפתח ref כדי לשנות את ערך הארגומנט שקדם לו מילת המפתח ref, מועברת לשיטה הנקראת ומילת המפתח החוצה משמשת להחזרת הערך של הארגומנט שקדם. לפי מילת המפתח החוצה.