25. Property accessors modifiers

לפעמים יש לנו Property במחלקה שיש לו getter וsetter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private int m_MyField;
public int MyProperty
{
get
{
// Write get code here
return m_MyField;
}
set
{
// Write set code here
m_MyField = value;
}
}

מדי פעם משיקולים כאלה ואחרים, אנחנו לא רוצים שהModifier של הgetter והsetter יהיה זהה, למשל שאחד יהיה public והשני יהיה private.

ניתן לפתור בעיה זו ע"י הוספת הModifier לפני הget/set:

1
2
3
4
5
6
7
8
9
10
11
12
13
public int MyProperty
{
get
{
// Write getter code here
return m_MyField;
}
private set
{
// Write setter code here
m_MyField = value;
}
}

אנחנו מקבלים Property בשם MyProperty שהgetter שלו הוא public והsetter שלו הוא private.

כמובן, נוכל להחליף את הModifierים של public וprivate בכל שני Modifierים שונים זה מזה אחרים.

יש שתי הגבלות שצריך לדעת:

  • לא נוכל לתת לשני הAccessorים modifierים
  • לא נוכל לתת Modifier שמאפשר חשיפה יותר גבוהה מהmodifier של הProperty. למשל, לא נוכל שהProperty יהיה private ושהgetter יהיה public. לעומת זאת, נוכל שהProperty יהיה protected והsetter יהיה private.

סופ"ש מצוין

שתף