בית התפתחות מהן תכונות כיווניות ב- c? - הגדרה מטכנולוגיה

מהן תכונות כיווניות ב- c? - הגדרה מטכנולוגיה

תוכן עניינים:

Anonim

הגדרה - מה המשמעות של תכונות כיוון?

תכונות כיוון, ב- C #, הם תגים המשמשים לציון פרמטר (ים) של שיטת אובייקט עם מידע הקשור לזרימת הנתונים של המתקשר בין המתקשר ל- Callee.


תכונות כיוון שולטות ביציאה - כאשר אובייקט מוכן להעברה על פני יישום או גבול תהליכים - של כיוון פרמטר השיטה וערכי ההחזרה. תכונות כיוון מוחלות על שינוי מרשז בזמן ריצה תוך העברת קוד מנוהל, שמבוצע על ידי Runtime Common Language Runtime (CLR), וקוד לא מנוהל, שמבוצע מחוץ לשליטת ה- CLR.

Techopedia מסביר תכונות כיווניות

InAttribute ו- OutAttribute הם שני התכונות C כיווניות C # המשמשות למיפוי לתכונות של שפת הגדרת הממשק (COM) של שפת הגדרת הממשק (IDL). מפות InAttribute ל- ו- OutAttribute מפות ל-. חתימת השיטה המנוהלת מחזרת ערכי מפות בספריית סוגים. חיוני לציין את התכונה הכוונתית הנכונה לפרמטרי השיטה, כך שספריית סוג הייצוא תגדיר נכון את סיביות ה- In / Out.


על ידי יישום InAttribute ו- OutAttribute במערכים וסוגים מעוצבים שאינם ניתנים לניתוח (שאין להם ייצוג זיכרון מנוהל ובלתי מנוהל משותף), המתקשר רואה שינויים קללי. תכונות כיוון המיושמות על סוגים אלה מצמצמות עותקים מיותרים במהלך ביצות.


ב- C # משתמשים InAttribute ו- OutAttribute בשלוש צורות עם שתי מילות מפתח במהלך תקשורת מתקשרת ומתקשרת, כדלקמן:

  • "החוצה" - משתמע
  • "ref" - משתמע,
  • (לא צוין) - (כברירת מחדל)

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


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


לתכונות הכיוון יש את המאפיינים הבאים:

  • אופציונלי ומיושם על פרמטרים של השיטה בזמן התכנון
  • נתמך לקליטת אינטרופ ופלטפורמה של COM בלבד
  • אין אפשרות להחיל InAttribute על פרמטר עם מילת מפתח מחוץ

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

  • זה לא מחליף את הנתונים שהועברו כפרמטר "In" מקוד לא מנוהל. לפיכך, ניתן לעבור רק נתונים לקריאה בלבד, כמו נתונים נגישים במקביל.
  • בזמן העברת אובייקטים - כמו מחרוזות בסיסיות או בינאריות (BSTR) - עם הקצאת זיכרון מבוססת, רצף ההקצאה / מיקום ההקצאה המתאים נעשה בהתאם להגדרות כניסה / יציאה.
הגדרה זו נכתבה בהקשר של C #
מהן תכונות כיווניות ב- c? - הגדרה מטכנולוגיה