【发布时间】:2013-07-21 23:14:02
【问题描述】:
我对 C# 中的访问器有点困惑。我假设可以为私有访问者做这样的事情:
private string m_name =
{
get { return m_name; } // Not sure if this is actually correct. Maybe use 'this'
set { m_name = value } // Not even sure if this is correct
}
我不确定上面的代码是否有效。我没有在 C# 中使用过访问器。
相反,文档规定这样做:
class Employee
{
private string m_name;
public string Name
{
get { return m_name; }
protected set { m_name = value; }
}
}
为什么要这样做,因为从我的角度来看,用户仍然可以通过 Name 访问私有 m_name 属性。这不会破坏私有(甚至受保护)属性的意义吗?
在第一个示例中,编译器是否不应该知道它的私有并因此在幕后创建方法(就像我相信它在编译时所做的那样)?
【问题讨论】:
-
不,在类外使用employee.name 实例进行保护,您不能这样做。
-
这对你很有帮助,这篇 msdn 文章以及左侧菜单中的后续文章 - msdn.microsoft.com/en-us/library/w86s7x04.aspx
标签: c#