前面我們已經看到并運用了通路修飾符,現在我們來進一步的掌握。
類成員支援五種通路修飾
通路不受限制
public(公共的)
通路範圍限定于它所屬的類或從該類派生的類型
protected (保護的)
通路範圍限定于此程式
internal(内部的)
通路範圍限定于此程式或那些由它所屬的類派生的類型
protected internal(内部保護的)
通路範圍限定于它所屬的類型
private(私有的)
注意:上面這些修飾都是對類而言的,以上的通路修飾符描述的對類内部成員的通路可見修飾。
publc所修飾值是完全公開的,不管是子類還是同程式集(代碼可見範圍)都是可以通路的。
protected所修飾值除了類本身,子類也可以通路
internal所修飾值除了類本身,同程式集(代碼可見範圍)都是可以通路的。
protected internal所修飾值除了類本身,子類或同程式集(代碼可見範圍)都是可以通路的。
private所修飾值除了類本身,都不可以通路。
舉一個俗氣的例子,你中了500W大獎,是個有錢人啦,要對自己的财務做點規劃。
第一筆錢,大家都可以用,狐朋狗友阿,親屬阿,老婆孩子啊,所需花費都可以用這筆錢。
第二筆錢,給你孩子留得,将來的教育基金阿,嫁妝娶老婆啊,等等
第三筆錢,給你的親屬的,父母,嶽父嶽母,親戚,老婆等等
第四筆錢,使家族基金,家族中不管老幼還是你孩子或是你的私生子都可用。
最後一筆錢,是你的私房錢,連老婆都不可以曉得。
1

public class Space
2
{
3
4
public static void Main(string[] args)
5
6
//錯誤CostPrice不可以通路
7
System.Console.WriteLine(new SalesContract().CostPrice);
8
9
//在代碼可以同見範圍内,PreferentialPrice可以通路
10
System.Console.WriteLine(new SalesContract().PreferentialPrice);
11
12
}
13
14
15
16
17

18

public class Contract//合同
19
20
public string Buyer;//買方
21
public string Seller;//賣方
22
protected double CostPrice;//成本價(隻有子類和自身可以通路)
23
24

25

26

public class SalesContract : Contract//銷售合同
27
28
private double MinimumPrice;//最低價
29
public double SalePrice;//銷售價格
30
public bool CheckPrice()//價格檢查
31
32
//CostPrice在本類不必聲明,基類已經聲明了
33
return SalePrice < Math.Min(MinimumPrice, CostPrice);
34
35
internal double PreferentialPrice;//優惠價
36
本文轉自shyleoking 51CTO部落格,原文連結:http://blog.51cto.com/shyleoking/806296