property c# - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

property c#


eido300

Recommended Posts

למה צריך את הproperty הרי עד כמה שראיתי בדרך כלל הקוד שלהם הולך כך:


public int x
{
get {return this.x;}
set {this.x = value;}
}

למה צריך להגדיר משהו חדש שיעשה את זה הרי זה מה שמשתנה רגיל עושה, לא?

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

קישור לתוכן
שתף באתרים אחרים

בעקרון אתה צודק, ובמקרה כזה ההבדל בין property לסתם משתנה פומבי הוא קטן. למעשה הוא כל כך קטן שבמיקרוסופט אפילו חשבו צעד אחד קדימה, והגדירו את ה-Auto Implemented Property, שנראה ככה:

public int x {
get;
set;
}

והוא מאחורי הקלעים כבר עושה את המימוש עם משתנה פרטי.

למה זה טוב?

קודם כל, כמו שאמרתי זה מאפשר לעשות דברים כמו בדיקת קלט או עיבוד. חוץ מזה, אתה יכול להפריד ככה בין ה-get ו-set מבחינת נראות (לדוגמה אפשר לעשות שה-get יהיה public וה-set יהיה private). אתה יכול להגדיר את ה-property כ-virtual, ואז מחלקות שיורשות מהמחלקה שלך יוכלו לדרוס אותה. חוץ מזה, אם בעתיד תרצה להוסיף בדיקות קלט לא תצטרך להחליף את x ממשתנה ל-property, כי הוא כבר כזה (ואז אתה גם שומר על תאימות לאחור, כי אתה רק משנה את המימוש הפנימי של המחלקה ולא את הממשק החיצוני שלה).

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...