赞
踩
这是一篇随笔心得。
如何使用访问修饰符public、protected、private、internal?
理论上来说,刚开始入行写C#的人,都会用这些访问修饰符,都知道都懂这些访问修饰符。
您发现了吗,你懂这些东西,不代表你是真懂。大多数人都是假懂。
不说别人,就说你自己,对,指的就是你、你、你自己。
你回顾一下,自己多年来所开发的项目,整个项目下来,你是不是只会public、private两种,整个项目,几乎就是这2种搞定。
间或偶尔用一下其它的,如protected,可能自己的protected,还是被迫使用的,因为微软C#类库的基类已经定义了protected,我不写protected override 不行啊。
假懂访问修饰符的根本原因,其实是面向对象不理解导致的。
万物皆对象,代码世界就是这样。这话好理解,可能写起来代码来,是真的很难很难。
我也不可能通过这篇随笔,就让你拥有面向对象的思想,就能让你以后改变。
判断一个人编码水平的高低,有2个表征:
一是Visual Studio快捷键的使用熟练程度和多寡。这条可能是有水分的水平表征。
二是一个项目,懂得熟练运用访问修饰符编写代码的人。这条是真正的有水平的人的表征。
三是项目中的所有方法,大部分方法体代码行数都在30行以下。这是掌握面向对象的人的表征。
很遗憾,大部分菜鸟都无法做好第2点。至于第3点嘛,用屁股想想就知道啦。
1.基于C#基础教程的基本应用,这种就不多说了。看书,书怎么讲就怎么用。下面是我的经验心得。
2.凡是你不需要让别人使用的类,应当设置为internal。
3.凡是你不想公开让别人调用的方法,都应该首先考虑protected,然后自己在本程序集是否要跨模块使用,再决定是否改为internal。
4.凡是你基于页面级别来操作的变量,应使用private私有。如果您需要公开该变量时,请单独添加一个internal或者public的访问器。页面级别是指你的page、winform窗体等。
5.在你的页面级别,可以多用私有变量,进行整个当前页面级进行互联互通。而不是不断的增加方法参数。不知道这点读者能不能看明白我的意思?
判断你使用访问修饰符成功的一个标准就是:
在页面级别,你不会让别人看到不该看的东西。
在程序集级别,你也不会让别人看到不该看的东西。
举例子来讲:
你的业务逻辑层,通常是被UI层调用的。如果你在UI层,调用了逻辑层后,发现你可以无所不能的访问到各种方法,各种属性。而这些属性可能是你完全不需要的,那么,这个访问修饰层就是做的失败的。
如上图红圈,如果智能感知,可以看到不该看,而且永远用不上的东西,那么访问修饰符的设计就应当视为做的不好。
祝您用餐愉快。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。