您的位置:首页 > 编程语言 > C#

C# 修饰符 总结

2017-03-12 16:22 162 查看

C#共有五种访问修饰符:public、private、protected、internal、protected internal。

如下图所示



C#成员类型的可修饰及默认修饰符如下表:


下面我就结合实例,讲一下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和pr//otected internal方法。

//在新建一个工程,且引用AccessModifierClass类的dll,代码如下:

1:  using System;
2:  using System.Collections.Generic;
3:  using System.Text;
4:  using AccessModifier;
5:
6:  namespace AccessModifierApp
7:  {
8:      public class AccessModifierAppClass1
9:      {
10:          void AvailableAccessModifier()
11:          {
12:              AccessModifierClass item = new AccessModifierClass();
13:              item.GetPublicString();
14:          }
15:      }
16:
17:      public class AccessModifierAppClass2 : AccessModifierClass
18:      {
19:          void AvailableAccessModifier()
20:          {
21:              AccessModifierClass item = new AccessModifierClass();
22:              item.GetPublicString();
23:              base.GetProtectedString();
24:              base.GetProtectedInternalString();
25:          }
26:      }
27:  }

//AccessModifierAppClass1类的AvailableAccessModifier()方法只能访问public方法。

//AccessModifierAppClass2类继承自AccessModifierClass类,所它的AvailableAccessModifier()方法可以访问public、protected和protected inte//rnal方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: