我有一個類Person,我需要有一個 property/field Age。
我希望 Age 在任何地方都可讀,但只能Grow()改變它的值。
如果我Age公開,那么它可以從外部修改,所以它對我不起作用。
將其設為私有可防止從外部讀取。
我還嘗試將其設為僅使用 get 方法的自動屬性,但隨后變數變為只讀并且只能在建構式中設定。
當然,我可以創建 Ageprivate并創建一個int GetAge()回傳Age.
這里的問題是,如果我的班級有很多這樣的欄位,我必須為每個欄位創建一個 get 函式。
是使函式int GetAge()成為解決此問題的唯一方法,還是有其他方法可以輕松地使屬性或欄位在類外部可讀但不可寫?
class Person
{
private int _age;
Person(int age)
{
_age = age;
}
void Grow()
{
_age ;
}
int GetAge()
{
return (_age);
}
}
uj5u.com熱心網友回復:
屬性可以有單獨的讀寫訪問描述符。所以,你的班級可以是:
public class Person
{
public int Age {get; private set; }
public Person(int age)
{
Age = age;
}
public void Grow()
{
Age ;
}
}
如果您只Age在建構式中設定,而沒有在任何方法中更改它,則可以將其宣告為public int Age {get;}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/371205.html
