在C#語言中,共有五種訪問修飾符:public、private、protected、internal、protected internal。作用範圍如下表:
訪問修飾符 說明
public 公有訪問。不受任何限制。
private 私有訪問。只限於本類成員訪問,子類,例項都不能訪問。
protected 保護訪問。只限於本類和子類訪問,例項不能訪問。
internal 內部訪問。只限於本專案內訪問,其他不能訪問。
protected internal 內部保護訪問。只限於本專案或是子類訪問,其他不能訪問
C#成員型別的可修飾及預設修飾符如下表:
成員型別 預設修飾符 可被修飾符
enum public none
class private public、protected、internal、private、
protected internal
interface public none
struct private public、internal、private
下面我就結合例項,講一下public、private、protected、internal和protected internal的作用範圍。
如下程式碼:
1: using System;
2: using System.Collections.Generic;
3: using System.Text;
4:
5: namespace AccessModifier
6: {
7: public class AccessModifierClass
8: {
9: public string GetPublicString()
10: {
11: return "Public String";
12: }
13:
14: protected string GetProtectedString()
15: {
16: return "Protected String";
17: }
18:
19: private string GetPrivateString()
20: {
21: return "Private String";
22: }
23:
24: internal string GetInternalString()
25: {
26: return "Internal String";
27: }
28:
29:
protected internal string GetProtectedInternalString()
30: {
31: return "Protected Internal String";
32: }
33:
34: void AvailableAccessModifier()
35: {
36: this.GetPublicString();
37: this.GetPrivateString();
38: this.GetInternalString();
39: this.GetProtectedInternalString();
40: this.GetProtectedString();
41: }
42: }
43:
44:
public class TestAccessModifierClass1
45: {
46: void AvailableAccessModifier()
47: {
48: AccessModifierClass item = new AccessModifierClass();
49: item.GetPublicString();
50: item.GetInternalString();
51: item.GetProtectedInternalString();
52: }
53: }
54:
55: public class TestAccessModifierClass2 : AccessModifierClass
56: {
57: void AvailableAccessModifier()
58: {
59: AccessModifierClass item = new AccessModifierClass();
60: item.GetPublicString();
61: item.GetInternalString();
62: item.GetProtectedInternalString();
63: base.GetProtectedString();
64: }
65: }
66: }AccessModifierClass是我們的訪問修飾符類,裡面有五種訪問修飾符方法,可見在AccessModifierClass類裡面的AvailableAccessModifier()方法可以訪問所有的方法。
在TestAccessModifierClass1類中的AvailableAccessModifier()方法只能訪問public、Internal和Protected Internal方法。
TestAccessModifierClass2類繼承自AccessModifierClass類,所以它的AvailableAccessModifier()方法可以訪問public,internal,protected和protected internal方法。
C#中public、private、protected、internal、protected internal (轉載)
相關文章
- java中的 public protected friendly privateJava
- java中public private protected default的區別Java
- C++中的三種繼承public,protected,private(轉)C++繼承
- public, private, protected 訪問許可權訪問許可權
- php class中public,private,protected,static的區別,以及例項PHP
- 【Java】private,protected,public,default的區別(形象生動)Java
- 面試題 private protected public default修飾符的 作用域面試題
- 再學Java 之 private、protected、public和default的作用域Java
- JavaScript實現類的private、protected、public、static以及繼承JavaScript繼承
- #Java教程:訪問修飾符:public、protected、預設、private @FDDLCJava
- 請說出作用域public,private,protected,以及不寫時的區別
- c# public_protected_private許可權訪問符_屬性訪問器get_setC#
- 為什麼類和介面不能使用private和protected?介面的方法不能使用private、protected、default
- Swift中private、fileprivate、public、open和internal許可權程式碼證明詳解Swift
- private,public,protected,static不可以修飾區域性變數,方法裡的變數變數
- C++繼承詳解:共有(public)繼承,私有(private)繼承,保護(protected)繼承C++繼承
- java中public,protected,private關鍵字以及預設訪問許可權修飾符的用法細節Java訪問許可權
- 三種繼承的方法:public 繼承/private繼承/protected繼承詳解及區別繼承
- Swift 3.0 的 open,public,internal,fiSwift
- C++中類繼承public,protected和private關鍵字作用詳解及派生類的訪問許可權C++繼承訪問許可權
- Oracle RAC中的Public IP, VIP和Internal IP,SCANOracle
- How Oracle Store Number internal?(轉載)Oracle
- Java 中關於protected的介紹Java
- c#之Serializable_internalC#
- 深入理解 Java 中 protected 修飾符Java
- Public與Private的區別 (轉)
- C++ protected繼承意義C++繼承
- 轉載:ORA-00600: internal error code, arguments: [504]Error
- oracle internalOracle
- VulNyx - Internal
- c#之訪問修飾符internalC#
- redis配置檔案中的保護模式protected-modeRedis模式
- Oracle-InternalOracle
- Redis學習 - 配置屬性:protected-modeRedis
- oracle INTERNAL_FUNCTIONOracleFunction
- mongodb replicat internal(一)MongoDB
- Btree Index storage internalIndex
- Internal Server Error..ServerError