30.7.2019

Interface - System object - עצרת


Interface

Interface – מחלקה של פונקציות שבמידה ומחלקה אחרת רוצה לירש היא חייבת לבצע את כל הפונקציות במחלקה אין את גוף הפונקציות אלא רק את השמות שלהם
מחלקה שלא אומרת איך לעשות אלא רק מה צריך לעשות
interface הוא כמו חוזה בין מחלקות המאפשר למתכנת לבנות תבנית ולבנות שירות המבוסס על תבנית זו וכל אחד שיממש את התבנית יוכל להשתמש בשירות זה.
·        נהוג ששם ה interface יתחיל תמיד בi
·        הפונקציות ב interface ללא הרשאות גישה ולכן המחלקה חייבת  להיות public
·        ניתן לרשת יותר מ interface אחד !! (מחלקה יכולה לרשת רק ממחלקה אחת)
·        לא ניתן ליצור אובייקטים ממחלקה זו
·        אם רוצים לבצע הורשה + interface  קודם נגדיר את ההורשה ואח"כ את ה interface
·        Interface יורש interface ומי שירצה לממש את השני יצטרך לממש גם את הראשון


טיפ חשוב – כשיורשים Interface וצריכים לממש את כל ההצהרות לא צריך לכתוב אותם חדש! יש פונקציה של הVS שעושה את זה לבד.
לחיצה על ה Interface תציג מנורה נלחץ על המנורה > נבחר implement Interface > יפתח חלונית שתציג את כל הנתונים של שייווצרו > לחיצה על הכפתור תיצור השלד של כל המימושים
בתוך הפונקציה יהיה כתוב           ()  throw new NotImplementedException – (כתוב חדש - לא מומש)




System object
כל מחלקה יורשת מsystem object   ישירות או דרך מחלקה שממנה יורשת
ToString()  - פונקציה המתקבלת מ object   ביצוע הפונקציה על אובייקט מציג את הפרטים של האובייקט
Operator Overloading ניתן לשנות את הפונקציה באמצעות Overloading שתציג מחרוזת טקסט שונה
לדוג'
public  String ToString()
        {
            string result = string.Empty;
            result = string.Format("widght and height are {0} and {1}" ,width ,height);
            return result;
        }

1.     הכרזנו על פונקציה בשם result ואתחלנו אותה
2.     מגדירים את המחרוזת
3.     מחזירים את הערך
  Console.WriteLine(shapes.ToString());

עכשיו כשניקח אובייקט ונכריז עליו את הפונקציה המערכת תיקח את המשתנים של האובייקט כפי שהגדרנו ותציג את המחרוזת


פונקציה רקורסיבית - עצרת

חישוב עצרת באמצעות פונקציה רקורסיבית
עֲצֶרֶת היא מכפלת כל המספרים הטבעיים מ־1 ועד למספר נתון. מוצג כ - N!
למשל, "4 עצרת" היא המכפלה
1*2*3*4=24
הקוד הבא משתמש בפונקציה רקורסיבית לחישוב העצרת באמצעות פירוק הבעיה לגורמים
בכל פעם הפונקציה מכפילה את הערך שלה בקריאה לעצמה + הורדת המשתנה ב1 עד שמגיע ל1
ואז חוזר אחורה לחישוב

static int CalculateFactorial(int num)
        {
            if (num == 0)
                return 1;
            else
                return num * CalculateFactorial(num - 1)
}

לדוג' אם הערך הראשוני הוא 3 התוכנה יוצרת 3 פונקציות שכל אחת שולחת לבאה את הערך 1 וממתינה לתשובה
כשהאחרונה תגיע ל0 היא חוזרת לזו שלפניה עם הערך 1 שמכפילה אותו ב2 וחוזרת לזו שלפניה שמכפילה אותו ב3
                                    

אין תגובות:

הוסף רשומת תגובה

MVC

Web api Front end (צד משתמש) שולח http request     כל אתר מכל מכשיר יכול להתחבר ולקבל נתונים (אין אפליקציה) ולא משנה באיזו שפה ה...