在阅读c#中的属性时,我发现只有一个属性的访问者可以拥有访问修饰符,例如
私人或受保护的
例如
public int mbox_ival
{
get{
return m_ival;
}
protected set {
m_ival = value;
}
}
现在,如果我想要限制两个要保护的属性,我就知道它是不允许的。在 c#规范中也可以说只有一个访问者可以拥有访问修饰符。我无法理解这背后的原因。我是c#的新手,有人可以帮忙。
答案 0 :(得分:10)
受保护:
protected int mbox_ival {
get { return m_ival; }
set { m_ival = value; }
}
您只能拥有一个的原因是您拥有该属性的访问修饰符。
该修饰符是默认修饰符。修改两者只意味着你应该“提升”更宽松的那个。
例如:
public int mbox_ival {
protected get { return m_ival; }
private set { m_ival = value; }
}
没有意义,因为该物业实际上并不公开。它至多受到保护。所以你应该这样做:
protected int mbox_ival {
get { return m_ival; }
private set { m_ival = value; }
}
答案 1 :(得分:0)
因为如果你没有在'get'或'set'之前指定访问修饰符,它们都将具有你在属性上设置的访问修饰符。如果您要覆盖要保护的'get'和'set',那么将属性公之于众是没有意义的。您也可以将属性设置为“受保护”。