C#类数据成员(字段或属性)可以是私有的,也可以是公有的或受保护的。C#类成员访问
如果我想要私人领域的成员方法只使用,而不是暴露给外部世界?
我可以继续使用私人领域,而不破坏封装或任何正确的?
什么我不理解的是两个概念:我们可能需要暴露给外界VS中的数据的数据,我们可能不需要这么做(在类的外围)..
在谈论建造一堂课时,这两种数据是什么?
在下面的示例中,专用字段“名称”对于该类是私有的,但仍然可以由外部世界获取/设置。这里的抽象是'不是直接暴露在'你'在这里 - 有'它,而是添加一个间接的访问机制或更新?当我们谈论公共领域vs公共财产时,我们在这里讨论的是封装吗?
class Employee2
{
private string name = "Harry Potter";
private double salary = 100.0;
public string GetName()
{
return name;
}
public void SetName(string title, string fullName)
{
this.name = title + fullName;
}
public double Salary
{
get { return salary; }
}
}
class PrivateTest
{
static void Main()
{
Employee2 e = new Employee2();
// The data members are inaccessible (private), so
// they can't be accessed like this:
// string n = e.name;
// double s = e.salary;
// 'name' is indirectly accessed via method:
string n = e.GetName();
// 'salary' is indirectly accessed via property
double s = e.Salary;
}
}
你为什么要使用的方法不是属性有用对于'Name',为什么你的二传手没有设置任何东西?这是一个非常奇怪的例子。 – 2013-04-30 15:02:18
谢谢,Jon提出这个问题。我实际上从这里抓住了这个例子:http://msdn.microsoft.com/en-us/library/st6sy9xe.aspx – Athapali 2013-04-30 15:04:04
我建议你阅读维基百科封装[link](http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)) – Tombala 2013-04-30 15:05:29