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