eido300 פורסם 2014 במאי 2 Share פורסם 2014 במאי 2 למה צריך את הproperty הרי עד כמה שראיתי בדרך כלל הקוד שלהם הולך כך:public int x{get {return this.x;}set {this.x = value;}}למה צריך להגדיר משהו חדש שיעשה את זה הרי זה מה שמשתנה רגיל עושה, לא?אם משתמשים בזה בשביל לבדוק את תקינות הקלט או משהו כזה, בסדר מובן, אבל רוב המקרים שראיתי הם סתם כמו הדוגמא, אז בעצם למה צריך אותם? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2014 במאי 2 Share פורסם 2014 במאי 2 בעקרון אתה צודק, ובמקרה כזה ההבדל בין property לסתם משתנה פומבי הוא קטן. למעשה הוא כל כך קטן שבמיקרוסופט אפילו חשבו צעד אחד קדימה, והגדירו את ה-Auto Implemented Property, שנראה ככה:public int x { get; set;}והוא מאחורי הקלעים כבר עושה את המימוש עם משתנה פרטי.למה זה טוב?קודם כל, כמו שאמרתי זה מאפשר לעשות דברים כמו בדיקת קלט או עיבוד. חוץ מזה, אתה יכול להפריד ככה בין ה-get ו-set מבחינת נראות (לדוגמה אפשר לעשות שה-get יהיה public וה-set יהיה private). אתה יכול להגדיר את ה-property כ-virtual, ואז מחלקות שיורשות מהמחלקה שלך יוכלו לדרוס אותה. חוץ מזה, אם בעתיד תרצה להוסיף בדיקות קלט לא תצטרך להחליף את x ממשתנה ל-property, כי הוא כבר כזה (ואז אתה גם שומר על תאימות לאחור, כי אתה רק משנה את המימוש הפנימי של המחלקה ולא את הממשק החיצוני שלה). קישור לתוכן שתף באתרים אחרים More sharing options...
eido300 פורסם 2014 במאי 2 מחבר Share פורסם 2014 במאי 2 אוקיי, תודה רבה. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.