סקירה כללית של שיעורי חלק ב- Visual Basic .NET

click fraud protection

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

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

זה משמש הרבה על ידי Visual Studio עצמו, במיוחד בדפי אינטרנט שבהם זהו מושג מפתח בקובצי "קוד מאחורי". נראה איך זה עובד ב- Visual Studio, אך הבנת מה השתנה ב- Visual Studio 2005 עם הצגתו היא נקודת פתיחה טובה.

ב- Visual Studio 2003, הקוד "מוסתר" עבור יישום Windows היה הכל בקטע המכונה אזור המסומן "קוד שנוצר מעצבי Windows Form". אבל זה עדיין היה הכל באותו קובץ והיה קל להציג, ולשנות, את הקוד באזור.

instagram viewer
את כל של הקוד זמין ליישום שלך ב- .NET. אבל מכיוון שחלק ממנו הוא קוד שעליך לעשות לעולם אל תתעסקו עם זה, הוא הוחזק באזור מוסתר זה. (עדיין ניתן להשתמש באזורים לקוד משלך, אך Visual Studio כבר לא משתמש בהם.)

ב- Visual Studio 2005 (Framework 2.0), מיקרוסופט עשתה בערך את אותו הדבר, אך הם הסתירו את הקוד במקום אחר: מחלקה חלקית בקובץ נפרד. אתה יכול לראות זאת בתחתית האיור למטה:


לחץ כאן כדי להציג את האיור
לחץ על כפתור הקודם בדפדפן כדי לחזור

אחד ההבדלים בתחביר בין Visual Basic ל- C # כרגע הוא ש- C # דורש זאת את כל שיעורים חלקיים יהיו מוסמכים עם מילת המפתח חלקי אבל VB לא. לטופס הראשי שלך ב- VB.NET אין שום מוקדמות מיוחדות. אולם הצהרת מחלקת ברירת המחדל עבור יישום Windows ריק נראית כך באמצעות C #:

שיעור חלקי ציבורי טופס 1: טופס

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

בוא נראה כיצד כל זה עובד עם קוד אמיתי בעמוד הבא.

בעמוד הקודם הוסבר מושג השיעורים החלקיים. אנו ממירים כיתה יחידה לשתי כיתות חלקיות בדף זה.

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

 Class Class CombinedClass. פרטי m_Property1 כמחרוזת. תת ציבורי חדש (ערך ByVal כמחרוזת) m_Property1 = ערך. סיום משנה שיטת משנה ציבורית 1 () MessageBox. הצג (m_Property1) תת-סיום. נכס נכס 1 () כמחרוזת. לקבל. החזר את m_Property1. סוף גט. הגדר (ערך ByVal כמחרוזת) m_Property1 = ערך. סיום סט. נכס קצה. סיום כיתה 

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

מעמדי הכיתה כמו חדש _. CombinedClass ("אודות שיעורים חלקיים של Visual Basic") ClassInstance. שיטה 1 ()

אנו יכולים להפריד בין המאפיינים והשיטות של הכיתה לקבצים פיזיים שונים על ידי הוספת שני קבצי כיתה חדשים לפרויקט. תן שם לקובץ הפיזי הראשון Partial.methods.vb ותן את השם השני Partial.properties.vb. שמות הקבצים הפיזיים חייבים להיות שונים אך שמות המחלקות החלקיות יהיו זהים כך Visual Basic יכול למזג אותם עם עריכת הקוד.

זו לא דרישת תחביר, אבל רוב המתכנתים עוקבים אחר הדוגמה ב- Visual Studio של שימוש בשמות "מנוקדים" עבור שיעורים אלה. לדוגמה, Visual Studio משתמש בשם ברירת המחדל Form1.Designer.vb עבור המחלקה החלקית עבור טופס Windows. זכור להוסיף את מילת המפתח החלקית לכל מחלקה ולשנות את שם המחלקה הפנימי (לא את שם הקובץ) לאותו שם. השתמשתי בשם הכיתה הפנימי: PartialClass.

האיור שלהלן מציג את כל הקוד לדוגמה ואת הקוד בפעולה.


לחץ כאן כדי להציג את האיור
לחץ על כפתור הקודם בדפדפן כדי לחזור

Visual Studio "מסתיר" שיעורים חלקיים כמו Form1.Designer.vb. בדף הבא אנו לומדים כיצד לעשות זאת עם השיעורים החלקיים שיצרנו זה עתה.

העמודים הקודמים מסבירים את המושג שיעורים חלקיים ומראים כיצד לתקן אותם. אבל מיקרוסופט משתמשת בטריק אחד נוסף עם המחלקות החלקיות שנוצרו על ידי Visual Studio. אחת הסיבות לשימוש בהן היא הפרדת היגיון היישומים מקוד ממשק המשתמש (ממשק המשתמש). בפרויקט גדול, שני סוגים אלה של קוד עשויים אף להיווצר על ידי צוותים שונים. אם הם נמצאים בקבצים שונים, ניתן ליצור אותם ולעדכן אותם עם הרבה יותר גמישות. אבל מיקרוסופט עוברת צעד נוסף ומסתירה את הקוד החלקי גם ב- Solution Explorer. נניח שרצינו להסתיר את השיטות והתכונות שיעורים חלקיים בפרויקט זה? יש דרך, אבל זה לא ברור ומיקרוסופט לא אומרת לך איך.

אחת הסיבות לכך שאינך רואה שימוש בשיעורים חלקיים המומלצים על ידי מיקרוסופט היא שהיא עדיין לא ממש נתמכת היטב ב- Visual Studio. כדי להסתיר את הכיתות Partial.methods.vb ו- Partial.properties.vb שיצרנו זה עתה, למשל, דורש שינוי ב- vbproj קובץ. זהו קובץ XML ש אפילו לא מוצג בסייר פתרונות. אתה יכול למצוא אותו באמצעות סייר Windows יחד עם הקבצים האחרים שלך. קובץ vbproj מוצג באיור שלהלן.


לחץ כאן כדי להציג את האיור
לחץ על כפתור הקודם בדפדפן כדי לחזור

הדרך בה אנו הולכים לעשות זאת היא להוסיף כיתת "שורש" ריקה לחלוטין (נותרו רק הכותרת Class ו- הצהרת Class Class) ולהפוך את שני המעמדות החלקיים שלנו לתלויים בזה. אז הוסף כיתה אחרת בשם PartialClassRoot.vb ושנה שוב את השם הפנימי ל- PartialClass כך שיתאים לשניים הראשונים. הפעם, יש לי לא השתמש במילת המפתח החלקית רק כדי להתאים לאופן שבו Visual Studio עושה את זה.

כאן המקום שימושי מעט מאוד ב- XML. מכיוון שיהיה צורך לעדכן קובץ זה באופן ידני, עליכם לקבל את תחביר ה- XML. ניתן לערוך את הקובץ בכל עורך טקסטים של ASCII - פנקס הרשימות עובד בסדר גמור - או בעורך XML. מסתבר שיש לך אחד נהדר ב- Visual Studio וזה מה שמוצג באיור למטה. אך אינך יכול לערוך את קובץ vbproj בו זמנית שאתה עורך את הפרויקט בו הוא נמצא. אז סגור את הפרויקט ופתח רק את קובץ ה- vbproj. אתה אמור לראות את הקובץ המוצג בחלון העריכה כמוצג באיור למטה.

(שימו לב ל לקמפל אלמנטים לכל כיתה. תלוי ב יש להוסיף אלמנטים משנה בדיוק כפי שמוצג באיור שלהלן. איור זה נוצר ב- VB 2005 אך הוא נבדק גם ב- VB 2008.)


לחץ כאן כדי להציג את האיור
לחץ על כפתור הקודם בדפדפן כדי לחזור

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

אולי. זה מסוג הדברים שהם עשויים לעשות.

instagram story viewer