首先分享一段话 : 折腾不死,装逼不止!!!

    在同一命名空间 (在java叫包) 中有一个 A类    B类      => 如代码所示

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApp1
 8 {
 9     class A
10     {
11         //修饰符: public(公开的) 吐槽: 刚刚开始学类的时候用的多
12         public int testa;
13         //修饰符:protected(保护的) 吐槽: 学到类的继承和多态会了解到
14         protected int testb;
15         //修饰符:private(私人的) 吐槽: 学到类的封装的时候了解到
16         private int testc;
17         /* 以上三种是我们用的最多的(自我感觉),下面介绍奇怪的几种 */
18 
19         //修饰符:internal(内部的) 吐槽:在写这篇博客的时候并没有用过
20         internal int testd;
21         //修饰符:protected internal(受保护的内部成员) 吐槽: 卧槽还能这样用?学到了
22         protected internal int teste;
23         //修饰符:private protected(私人的受保护成员) 吐槽:实在是秀,额出现的点状况 [汗颜]
24         private protected int testf; 
25 
26 
27         //C#中如果不加修饰符默认为 private(私人的)
28         int a;
29     }
30 }
字段加修饰符
  •     public 基于A类来做示例。 既然是公开的就是无论哪里都能访问这个类或者字段 就像示例里写的main方法里创建对象后能点出来,这个在前期打代码的时候觉得很方便少了很多的步骤

  •     private

慢慢的开始用上了封装感觉这样更加符合道理,自己写的程序越来越高大尚,逻辑越来越清晰

细心的你可能发现了 爱心 和 五角心

  •     protected

继承 => 就和皇帝的儿子 继承皇位很相似因为儿子能拿到爸爸留下来的遗产,在程序里是子类能调用父类的字段和方法

因为program类不是A类的子类所以不能访问,什么是子类的这里涉及继承直接上代码不细讲,可以看到可以用this点出来了

 

  •     internal

这个东西就感觉没很大的意义,就是只能在当前项目下可以用,比如两个项目 TEST1 , TEST2 =>在test1中引用了2 ,如果有一个类或者变量是internal级别就不能点(.)出来或者说是 创建对象,调用

  •     protected  internal
  •     private protected 这个只能在C#7.2以上才能用,要不然报错

   最后两个很奇葩的请参考MSDN文档

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/protected-internal

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/private-protected

 

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

                      总结

 其实这些访问修饰符都是慢慢接触到的,一开始就去研究它其实很好只是很难理解,这个时候就会去学习到其他的新知识点 比如 继承,多态,静态,等等~~ 

在研究通了之后你就发现写程序比你的同学思路来的更加清晰,这就是进步想要进步是有点困难的 [偷笑],然后你读完我的博客就发现了 MSDN 这个宝贝,第一次写博客格式部署不是很完美

                            -----就是懒来打我啊!