VS默认的类前缀(访问控制符)是internal

大家都知道VS默认新建的class的时候,class前面是什么都没有的,按照规则,这个class的可见性是internal,但是说实话,很多人包括我在内,都知道internal是什么意思(程序集内部可见)但是很少有人去用这个默认的设定,而是习惯性的将其改为public,以至于很多时候觉得每次创建class都得去改动一下觉得很麻烦,然后去改动模版文件来让每次都生成。
我当然也不例外,一直也是这么做的,后来我看了CLR via C#还有其他一些深入介绍的书,我感觉微软的VS这么多年一直没有改动默认设定是有道理的,按照可见性最小原则,如果没有什么特别的需要,比如你要建立一个需要外部来访问的类库,必须将类设定为public,但是如果没有类似的需要,public则是不必要的,默认的internal就可以很好的满足需要了,最最主要的是,这样对类很安全。
认识到这一点,我也就决定开始更改我的习惯,以后除非必要,否则就使用默认的internal。
除了类,变量和方法也是如此,如果只是本类内使用,一律private,对外有专门的接口(public方法和属性等);
其实,这样的问题在一开始为了方便很多都没有注意到,也不理解,但是后来慢慢熟练了,明白了,就需要考虑了。
很多知识都是如此,学习的时候多问几个为什么,了解一下实际这个概念的应用,甚至反过想一下创作这个概念的人的思路和意图,往往有助于自己更深层次的去理解,也训练了自己的思维方式。
努力去写出好的代码。

VS默认的类前缀(访问控制符)是internal的更多相关文章

  1. java类的访问控制符与其他几个特殊修饰符的总结

    1  访问控制符 1.1 字段或者方法的访问控制符   同一个类中 同一个包中 不同包中的子类 不同包中的非子类 private YES       默认(包可访问) YES YES     prot ...

  2. java_类的访问控制符

    1.分类: public protected default private是java中的访问控制修饰符. public String name; protected String name; Str ...

  3. Java知多少(19)访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: 1 public class className { 2 // body of class 3 } 4 pr ...

  4. Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  5. java中的访问控制符

    首先来一张图: 对于一个类而言访问控制符只有一个public和默认无修饰符.其他的几个访问修饰符对于变量和方法都可以使用. 下面介绍具体的使用. 1. 公有访问控制符(public) Java的类是通 ...

  6. 《Java基础知识》Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  7. AJPFX关于java中可访问控制符和非访问控制符的详细总结

    1.类的修饰符分为:可访问控制符和非访问控制符两种. 可访问控制符是:公共类修饰符 public 非访问控制符有:抽象类修饰符 abstract :最终类修饰符 final 1 )公共类修饰符 pub ...

  8. Java final类&所有构造方法均为private的类(类型说明符&访问控制符)

    1. final是类型说明符,表示关闭继承,即final类不能有子类: 但final类可能可以在类外创建对象(即final类的构造方法可以不是private型): 在同一包中时,可以在任何另外一个类中 ...

  9. java中方法的控制修饰符也分为:可访问控制符和非访问控制符两类。

    3 .方法的控制修饰符也分为:可访问控制符和非访问控制符两类. 可访问控制符有 4 种:公共访问控制符: public :私有访问控制符: private :保护访问控制符: protected :私 ...

随机推荐

  1. Shell笔记-03

    前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运 ...

  2. Java中CSS&JS篇基础笔记

    HTML就是由一组标签所组成的.HTML的字体标签: <font>标签: 属性:color,size,face HTML的排版标签: h标签:标题标签. p标签:段落标签. b标签:加粗标 ...

  3. 决策树 - 可能是CART公式最严谨的介绍

    目录 决策树算法 ID3算法[1] C4.5 改进[1] "纯度"度量指标:信息增益率 离散化处理 CART(分类与回归树,二叉) 度量指标 二值化处理 不完整数据处理 CART生 ...

  4. python使用ctypes模块下的windll.LoadLibrary报OSError: [WinError 193] % 不是有效的 Win32 应用程序

    原因:python是64位的python,而windll.LoadLibrary只能由32位的python使用 参考: 64位Python调用32位DLL方法(一) 解决方法:使用32位的python ...

  5. Bootstrap源码解读之栅格化篇

    本文纯属自己研究所写笔记,如果有错误还请多多指教提出 版心(container) 版心:class名为.container的容器,其版心的宽度在各个屏幕设备下是不一样的值,版心两边就是留白. 各尺寸下 ...

  6. PHP接收post请求,不是空数组就是没值,怎么办!

    使用: $_POST $_REQUEST I('post.') 都不行, 换成: file_get_contents("php://input");

  7. 深入浅出MFC学习笔记 第三章 MFC六大关键技术之仿真

    0:MFC类层次结构 1:MFC程序的初始化过程CWinApp::InitApplication()CMyWinApp::InitInstance()CMyFrameWnd::CMyFrameWnd( ...

  8. Python3 urllib 爬取 花瓣网图片

    点我去我的github上看源码 **花瓣网是动态的,所以要抓包分析,,但我真的累的不行,不想写教程了,我源码里有注释

  9. sublime install package没反应,以及安装后没有出现install package选项

    离线安装Package Control 一般出现这种问题的是网络原因,我们可以下载离线安装包 连接地址:https://github.com/wbond/package_control 安装完成后解压 ...

  10. leetcode-746-Min Cost Climbing Stairs(动态规划)

    题目描述: On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once yo ...