הבדל מפתח - יציאה לעומת רפ ב-C
C היא שפת תכנות מודרנית שפותחה על ידי Microsoft. הוא משמש לפיתוח יישומים שונים עבור שולחן העבודה, האינטרנט והנייד. פונקציות או שיטות הוא מושג בתכנות. אותה קבוצה של הצהרות המשמשות לביצוע משימה מסוימת ידועה כפונקציה או שיטה. בתוכניות C, הביצוע מתחיל מ-main (). זו דוגמה לשיטה. בעת קריאה למתודה, נתונים מועברים למתודה או מתקבלים מהשיטה. השיטה שקוראת לשיטה החדשה ידועה כקריאה לשיטה. השיטה החדשה ידועה בשם השיטה הנקראת. לניהול ערכי המעבר והחזרת התוצאה, C משתמשת בפרמטרים.הם פרמטרים מוערכים, פרמטרי פלט ופרמטרים ייחוס. פרמטרי הערך משמשים להעברת פרמטרים לתוך השיטה לפי ערך. פרמטרי ההתייחסות משמשים להעברת פרמטרים לשיטה באמצעות הפניה. פרמטרי הפלט משמשים להעברת התוצאה חזרה מהשיטה. ב-C, מילת מפתח out משמשת לפרמטרי פלט ומילת מפתח ref משמשת להפניה לפרמטרים. ההבדל העיקרי בין out ל-ref ב-C הוא ש-out היא מילת מפתח המשמשת להפנות פרמטר פלט המשמש להעברת תוצאות מהשיטה הנקראת לשיטת הקריאה בעוד ref היא מילת מפתח להפניה לפרמטר הפניה המשמש להעברת נתונים משיטת הקריאה לשיטה שנקראה ולקבלת הנתונים מהשיטה הנקראת לשיטת הקריאה.
מה יצא ב-C?
התחביר של פונקציה או שיטה הוא כדלקמן. לשיטה יש מספר אלמנטים כגון שם שיטה, רשימת פרמטרים, סוג החזרה ומפרט גישה.
(רשימת פרמטרים)
{ //הצהרות לביצוע
}
לכל שיטה יש שיטה ייחודית לביצוע קריאת הפונקציה. הצהרות ההפעלה נמצאות בתוך סוגרים מסולסלים. סוג ההחזרה מסביר אם הפונקציה מחזירה ערך או לא. כאשר אין סוג החזרה, זה נקרא ריק. מפרט הגישה משמש לציון נגישות השיטה באפליקציה. הפרמטרים משמשים כדי לקבל או להעביר נתונים לשיטה. יכולות להיות גם שיטות ללא פרמטרים. פרמטרים יכולים להיות פרמטרים מוערכים, פרמטרי פלט או פרמטרים ייחוס.
פרמטרי הפלט משמשים להעברת תוצאות חזרה לשיטת הקריאה. לשם כך, יש להצהיר על הפרמטר עם מילת המפתח בחוץ. פרמטר הפלט אינו יוצר מיקום אחסון חדש. בדרך כלל, שיטה מחזירה ערך אחד.אבל ב-C, אפשר להחזיר שני ערכים מפונקציה באמצעות פרמטרי פלט. עיין בתוכנית שלהלן.
יישום מרחב שם1{
חישוב כיתה ציבורית{
הצגת ביטול ציבורי(out int a, out int b){
int value=5;
a=value;
b=value;
a=a a;
b=bb;
}
public static void main(מחרוזת args){
int value1=10, value2=20;
Calculation cal=new Calculation();
cal.display(out value1, out value2);
Console. ReadLine();
}
}
}
פונקציית התצוגה נקראת מהשיטה הראשית. לערך1 ולערך שני יש 10 ו-20, אבל הם לא נלקחים לשיטה. הערך של a הוא 25 והערך של b הוא גם 25 בפונקציה.לכן, ערכים אלה מוחזרים. בעת הדפסה של value1 ו-value2, הוא לא ייתן 10 ו-20. במקום זאת, הוא ידפיס 25 ו-25. באמצעות מילת המפתח out ניתן להחזיר ערכים מרובים מהשיטה.
מה זה ref ב-C?
בעת העברת פרמטרים לפי ערך, נוצר מיקום אחסון חדש עבור כל פרמטר. הפרמטרים בפועל שנשלחו מהתוכנית הראשית אינם משתנים. במקום זאת, ערכים אלה מועתקים למיקום נפרד. אותם עותקים משתנים חדשים נקראים פרמטרים פורמליים. עיין בקוד שלהלן.
יישום מרחב שם1{
חישוב כיתה ציבורית{
החלפת חלל ציבורי(int x, int y){
int temp;
temp=x;
x=y;
y=temp;
}
public static void main(מחרוזת args){
Calculation cal=new Calculation();
int p=2;
int q=3;
cal.swap(p, q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
לפי התוכנית לעיל, למחלקת Calculation יש החלפת שיטה (). בתוכנית הראשית נוצר אובייקט מסוג Calculation. ישנם שני ערכים כגון p ו-q. למשתנה p יש ערך 2 ולמשתנה q יש ערך 3. שני הערכים הללו מועברים לשיטת ההחלפה. בשיטת ההחלפה, הערך 2 מועתק למשתנה x וערך 3 מועתק למשתנה y. באמצעות משתנה הטמפ', הערכים מוחלפים. בחזרה בתוכנית הראשית, בעת הדפסת p ו-q, הערכים אינם מוחלפים. ערך p עדיין 2 וערך q הוא 3. אפילו בשיטת ההחלפה, הערכים מוחלפים אך אינם משקפים בתוכנית הראשית.
בניגוד להעברת ערכים כמו לעיל, אפשר להעביר פרמטרים באמצעות הפניה. משתנה התייחסות הוא התייחסות למיקום הזיכרון.לא נוצר מיקום זיכרון חדש. השינויים בשיטה באים לידי ביטוי בתוכנית הראשית. ב-C, פרמטרי ההתייחסות מופנים באמצעות מילת מפתח ref. עיין בתוכנית שלהלן.
יישום מרחב שם1{
חישוב כיתה ציבורית{
החלפת חלל ציבורי (ref int x, ref int y){
int temp;
temp=x;
x=y;
y=temp;
}
public static void main(מחרוזת args){
Calculation cal=new Calculation();
int p=2;
int q=3;
cal.swap(ref p, ref q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
לפי התוכנית לעיל, לכיתה חישוב יש את שיטת ההחלפה.בתוכנית הראשית נוצר אובייקט מסוג Calculation. מדובר בשני משתנים כגון p ו-q. למשתנה p יש את הערך 2 ולמשתנה q יש את הערך 3. במקום להעביר ערכים, ההתייחסות למיקומי הזיכרון של p ו-q מועברת לשיטה. משתני התייחסות אלה מופנים באמצעות ref. בשיטת ההחלפה, במקום להתמודד עם הערכים למיקום חדש, השינויים מתבצעים בפרמטרים בפועל. בעת הדפסת ערכי p ו-q של התוכנית הראשית, היא תיתן את הערכים המוחלפים. כעת ערך p הוא 3 וערך q הוא 2.
מהו הדמיון בין out ל-ref ב-C?
שתיהן מילות מפתח המשמשות להפניה לפרמטרים של שיטה
מה ההבדל בין out ל-ref ב-C?
out vs ref in C |
|
The out היא מילת מפתח ב-C המשמשת להפניה לפרמטר פלט. הוא משמש להעברת התוצאות משיטה שנקראה לקריאה לשיטה. | ה-ref היא מילת מפתח ב-C המשמשת להפניה לפרמטר התייחסות. הוא משמש להעברת נתונים משיטת קריאה למתודה שנקראה ולהחזרת נתונים מהשיטה שנקראה לשיטת קריאה. |
פונקציונליות | |
כאשר משתמשים במילת המפתח out, ניתן להעביר את הנתונים משיטת הקריאה לשיטה הנקראת. אבל הנתונים האלה נמחקים. הוא משמש להעברת התוצאה לשיטת הקריאה מהשיטה שנקראה. | בעת שימוש במילת המפתח ref, הנתונים מועברים משיטת הקריאה למתודה הנקראת והנתונים שעברו מניפולציה מועברים בחזרה לשיטת הקריאה. |
העברת נתונים | |
כשמשתמשים במילת המפתח out, הנתונים מועברים בדרך אחת שהיא שיטה שנקראה לשיטת הקריאה. | כשמשתמשים במילת המפתח ref, הנתונים מועברים בשתי דרכים שהם, משיטת הקריאה למתודה שנקראה ומהשיטה הנקראת לשיטת הקריאה. |
סיכום – בחוץ מול רפ ב-C
בעת הפעלת שיטה, ייתכן שיהיה צורך להעביר את הערכים לתוך השיטה ולקבל בחזרה את התוצאות מהשיטה. ל-C יש פרמטרים שונים כדי להשיג זאת. פרמטרי הערך משמשים להעברת פרמטרים לתוך השיטה לפי ערך. פרמטרי ההתייחסות משמשים להעברת פרמטרים לשיטה באמצעות הפניה. פרמטרי הפלט משמשים להעברת התוצאה חזרה מהשיטה. ב-C, מילת מפתח out משמשת לפרמטרי פלט ומילת מפתח ref משמשת להפניה לפרמטרים. ההבדל בין out ל-ref ב-C הוא ש-out היא מילת מפתח המשמשת להפנות פרמטר פלט המשמש להעברת תוצאות מהשיטה הנקראת לשיטת הקריאה בעוד ש-ref היא מילת מפתח להפניה לפרמטר הפניה המשמש להעברת נתונים ממנו. שיטת קריאה לשיטה שנקראה ולקבלת הנתונים מהשיטה שנקראה לשיטת הקריאה.
הורד את ה-PDF של out vs ref ב-C
ניתן להוריד את גרסת ה-PDF של מאמר זה ולהשתמש בה למטרות לא מקוונות לפי הערת ציטוט. אנא הורד את גרסת ה-PDF כאן: ההבדל בין Out ו-Ref ב-C