יש רק שלוש דרכים לארגן א VB.NET יישום.
- מודולים
- מבנים
- שיעורים
אבל מרבית המאמרים הטכניים מניחים שאתה כבר יודע הכל עליהם. אם אתה מבין רבים שעדיין יש לך כמה שאלות, אתה יכול פשוט לקרוא את החלקים המבלבלים ולנסות להבין זאת בכל מקרה. ואם יש לך א הרבה בזמן, תוכלו להתחיל לחפש של מיקרוסופט תיעוד:
- "מודול הוא קובץ הפעלה נייד, כגון type.dll או application.exe, המורכב ממחלקה אחת או יותר וממשקים."
- "הצהרת מחלקה מגדירה סוג נתונים חדש."
- "הצהרת המבנה מגדירה סוג ערך מורכב שתוכל להתאים אישית."
בדיוק אז. יש שאלות?
כדי להיות קצת יותר הוגנים כלפי מיקרוסופט, יש להם דפים ועמודים (ועוד דפים) של מידע על כל אלה שתוכלו להעמיס עליהם. והם צריכים להיות מדויקים ככל האפשר מכיוון שהם קובעים את התקן. במילים אחרות, התיעוד של מיקרוסופט לפעמים קורא כמו ספר חוקים מכיוון שהוא הוא ספר חוקים.
אבל אם אתה רק לומד .NET, זה יכול להיות מבלבל מאוד! אתה צריך להתחיל איפשהו. הבנת שלוש הדרכים הבסיסיות בהן ניתן לכתוב קוד ב- VB.NET היא מקום טוב להתחיל.
אתה יכול לכתוב VB.NET קוד באמצעות אחת משלושת הטפסים הללו. במילים אחרות, אתה יכול ליצור יישום קונסולה ב- VB.NET Express וכתבו:
מודול מודול 1
תת עיקרי ()
MsgBox ("זהו מודול!")
סיום משנה
סיום מודול
כיתה 1
תת עיקרי ()
MsgBox ("זו כיתה")
סיום משנה
סיום כיתה
מבנה מבנה 1
עמום את MyString כמיתר
תת עיקרי ()
MsgBox ("זה מבנה")
סיום משנה
מבנה קצה
זה לא עושה כל תחושה כתוכנית, כמובן. העניין הוא שלא תקבלו שגיאת תחביר אז זה "חוקי" קוד VB.NET.
שלוש הצורות הללו הן הדרך היחידה לקודד את שורש הדבורה המלכה של כל ה- NET: האובייקט. האלמנט היחיד הקוטע את הסימטריה של שלוש הצורות הוא האמירה: עמום את MyString כמיתר. זה קשור למבנה שהוא "סוג נתונים מורכב" כפי שמצהירה מיקרוסופט בהגדרתם.
דבר נוסף שיש לשים לב אליו הוא שלשלוש הבלוקים יש תת עיקרי () בהם. אחד המנהלים הבסיסיים ביותר של OOP נקרא בדרך כלל כימוס. זהו אפקט "הקופסה השחורה". במילים אחרות, אתה אמור להיות מסוגל להתייחס לכל אובייקט באופן עצמאי וזה כולל שימוש בתכניות משנה בשם זהות אם תרצה.
שיעורים
חוגים הם המקום 'הנכון' להתחיל בו, מכיוון שכך מיקרוסופט מציין, "כיתה היא אבן בניין בסיסית של תכנות מונחה עצמים (OOP)." למעשה, חלק מהמחברים מתייחסים למודולים ומבנים כאל סוגים מיוחדים של שיעורים. כיתה היא יותר מונחה עצמים מאשר מודול מכיוון שזה אפשרי ליישר (צור עותק של) כיתה אך לא מודול.
במילים אחרות, תוכלו לקוד ...
טופס מחלקה ציבורית 1
טופס משנה פרטי 1_Load (_
שולח ByVal כמערכת. חפץ, _
מערכת ByVal e As. EventArgs) _
מטפל ב- MyBase. עומס
העמק את myNewClass ככיתה 1 = מחלקה חדשה 1
myNewClass. ClassSub ()
סיום משנה
סיום כיתה
(מודגש ההשקה הכיתית.)
לא משנה אם המעמד עצמו, במקרה זה, ...
מחלקה ציבורית ציבורית 1
תת כיתת משנה ()
MsgBox ("זו כיתה")
סיום משנה
סיום כיתה
... נמצא בקובץ בפני עצמו או שהוא חלק מאותו קובץ עם הקובץ צורה 1 קוד. התוכנית פועלת בדיוק באותה צורה. (שים לב ש צורה 1 היא גם כיתה.)
אתה יכול גם לכתוב קוד כיתה שמתנהג כמו מודול, כלומר מבלי ליצור אותו מייד. זה נקרא א משותף מעמד. המאמר "סטטי" (כלומר "משותף") לעומת סוגים דינמיים ב- VB.NET מסביר זאת ביתר פירוט.
יש לזכור עובדה נוספת בנושא שיעורים. חברים (תכונות ושיטות) של הכיתה קיימות רק כאשר מופע הכיתה קיים. השם לזה הוא סקופ. זה ה היקף של מופע של כיתה מוגבל. ניתן לשנות את הקוד למעלה כדי להמחיש נקודה זו בדרך זו:
טופס מחלקה ציבורית 1
טופס משנה פרטי 1_Load (_
שולח ByVal כמערכת. חפץ, _
מערכת ByVal e As. EventArgs) _
מטפל ב- MyBase. עומס
העמק את myNewClass ככיתה 1 = מחלקה חדשה 1
myNewClass. ClassSub ()
myNewClass = כלום
myNewClass. ClassSub ()
סיום משנה
סיום כיתה
כאשר השני myNewClass. ClassSub () הצהרה מבוצעת, א NullReferenceException שגיאה נזרקת מכיוון ש - ClassSub חבר לא קיים.
מודולים
ב- VB 6 היה מקובל לראות תוכניות בהן רוב הקוד היה במודול (A בסיס, קובץ ולא, למשל, ב טופס קובץ כגון Form1.frm.) ב- VB.NET, שני המודולים והכיתות נמצאים .VB קבצים. הסיבות העיקריות לכך שהמודולים כלולים ב- VB.NET היא לתת למתכנתים דרך לארגן את המערכות שלהם על ידי הצבת קוד במקומות שונים בכדי לכוונן את היקף הגישה שלהם קוד. (כלומר, כמה זמן קיימים חברים במודול ואיזה קוד אחר יכול להפנות ולהשתמש בחברים.) לפעמים, כדאי להכניס קוד למודולים נפרדים רק כדי להקל על העבודה איתם.
כל המודולים של VB.NET הם משותף מכיוון שלא ניתן לייצר אותם (ראה לעיל) וניתן לסמן אותם חבר או ציבורי כך שניתן יהיה לגשת אליהם באותה הרכבה או בכל פעם שאליהם מפנים אותה.
מבנים
מבנים הם הכי פחות מובנים משלוש צורות האובייקטים. אם היינו מדברים על "בעלי חיים" במקום "חפצים", המבנה היה Aardvark.
ההבדל הגדול בין מבנה לשיעור הוא שמבנה הוא א סוג ערך ושיעור הוא א סוג הפניה.
מה זה אומר? אני כל כך שמח ששאלת.
סוג ערך הוא אובייקט המאוחסן ישירות בזיכרון. א מספר שלם היא דוגמה טובה לסוג ערך. אם הצהרת על א מספר שלם בתוכנית שלך ככה ...
עמעום את הכמות שלי כמספר שלם = 10
... ובדקת את מיקום הזיכרון המאוחסן ב- MyInt, אתה תמצא את הערך 10. אתה רואה גם את זה שמתואר כ"הוקצה על הערימה ".
הערימה והערמה הם פשוט דרכים שונות לניהול השימוש בזיכרון המחשב.
סוג הפניה הוא אובייקט בו מיקום האובייקט נשמר בזיכרון. לכן מציאת ערך לסוג הפניה היא תמיד בדיקת שני שלבים. א מחרוזת היא דוגמה טובה לסוג הפניה. אם הצהרת על א מחרוזת ככה ...
עמום את myString כמחרוזת = "זה myString"
... ובדקת את מיקום הזיכרון המאוחסן ב- myString, תמצא מיקום זיכרון אחר (שנקרא א מצביע - דרך זו של עשיית דברים היא ליבם של שפות בסגנון C). תצטרך ללכת למיקום זה כדי למצוא את הערך "זה myString". זה נקרא לעתים קרובות "להקצות על הערימה". הערימה והערמה
יש מחברים שאומרים כי סוגי ערכים אינם אפילו אובייקטים ורק סוגי הפניות יכולים להיות אובייקטים. זה בהחלט נכון שמאפייני האובייקט המתוחכמים כמו ירושה ו כימוס אפשריים רק עם סוגי הפניות. אבל התחלנו את כל המאמר הזה באומרו שהיו שלוש צורות לאובייקטים ולכן עלי לקבל שמבנים הם סוג של אובייקט, גם אם הם אובייקטים לא סטנדרטיים.
מקורות התכנות של מבנים חוזרים לשפות מונחות קבצים כמו קובול. בשפות אלה, הנתונים עובדו בדרך כלל כקבצים שטוחים ברצף. "השדות" ברשומה מהקובץ תוארו על ידי קטע "הגדרת נתונים" (המכונה לעיתים "פריסת רשומה" או "ספר העתקים"). אז אם הרשומה מהקובץ הכילה:
1234567890ABCDEF9876
הדרך היחידה שתדע ש" 1234567890 "היה מספר טלפון," ABCDEF "היה מזהה ו- 9876 היה 98.76 דולר הייתה דרך הגדרת הנתונים. מבנים עוזרים לך להשיג זאת ב- VB.NET.
מבנה מבנה 1
מבנה קצה
בגלל מחרוזת הוא סוג התייחסות, זה הכרחי כדי לשמור על אורך זהה עם VBFixedString תכונה עבור רשומות באורך קבוע. אתה יכול למצוא הסבר מורחב על תכונה זו ותכונות באופן כללי במאמר תכונות ב VB. NET.
למרות שמבנים הם אובייקטים לא סטנדרטיים, יש להם יכולת רבה ב- VB.NET. אתה יכול לקוד שיטות, מאפיינים ואפילו אירועים ומטפלים באירועים במבנים, אך אתה יכול גם להשתמש בקוד פשוט יותר ומכיוון שהם סוגים של ערכים, העיבוד יכול להיות מהיר יותר. לדוגמה, תוכל לקודד מחדש את המבנה שלמעלה:
מבנה מבנה 1
תת mySub ()
MsgBox ("זה הערך של myPhone:" & myPhone)
סיום משנה
מבנה קצה
והשתמש בזה כך:
עמוק myStruct כמבנה 1
myStruct.myPhone = "7894560123"
myStruct.mySub ()
שווה את הזמן שלך לשחק קצת עם מבנים וללמוד מה הם יכולים לעשות. הם אחת הפינות המוזרות של VB.NET שיכולות להיות כדור קסם כשאתה זקוק לו.