【请教】关于类与类成员的访问修饰符
大家新春好!虎年的第一个帖子,请大家虎虎地支持一下!
以下疑问,请指教!
class A // 据MSDN上介绍,类的默认修饰符为internal
{
internal void method1()
{}
public void method2()
{}
}
上述代码例中,由于类的修饰符默认是internal,所以该类只在本程序集范围内可见,
并且,method1与method2两个方法的可见范围,也都只能在该程序集内(这点是肯定的吧),
那么,关于两个方法修饰符的写法上有效率或者安全等方面的考虑么?还是说完全一样任选其一均可呢?
谢谢!
[解决办法]
可以使用: [assembly:InternalsVisibleTo("cs_friend_assemblies_2")]
请参见:
http://msdn.microsoft.com/zh-cn/library/0tke9fxk.aspx
[解决办法]
类的修饰符的访问范围是:private<protected/internal<internal protected<public
根据需要选择修饰符
[解决办法]
此题无关效率与安全。
此题只是一个基本的编程范式的应用---单一职责和开闭原则
对内开放提供多种操作选择,对外封闭只提供单一职责。
调用者只需要知道他应该知道的,其他无关信息应该被隐藏起来
[解决办法]
其实很简单:你声明类成员给谁看?如果给别人(别的模块)看,那么你就要维护它的一致性,不要轻易改变;反之,如果你希望自己随时可以改变,就不要声明给别人(别的模块),以免给外界带来麻烦。
如果这个东西也需要纠结得很复杂,好像多么神秘似地,那么你搞编程就不会举重若轻,而纯粹是把自己累死了。
[解决办法]
其实,这纯粹是“责任感”的问题。当你参与过多人、长时间、许多工程协同开发,就对“责任感”具有了认知。我不认为这些幼稚的东西值得作为死记硬背的八股文、模式,这些知识应该用提升你自己的工作环境来获得,如果没有好的团队那么你可以特意找一些喜欢对需求变来变去的用户来配合,特意从难点出发就能让你对设计细节知道更多。这些原本最初等的东西如果作为教条,难免很极端地去理解,就好象我看到“类成员使用internal更适合吧”这句话时感到被鱼刺卡住了一样。
[解决办法]
[解决办法]
上接15楼http://topic.csdn.net/t/20050908/20/4258342.html
[解决办法]
楼主??15层有你要的答案吗?
[解决办法]
1、如果有你设定的先决条件,internal也许更符合理论上的原则;
2、实际生产当中,组件的重用性很高,您说的这种情况并不多见,或者说极少出现,至少我们的团队是这样的;而且我们的开发规范是能少则少。基于internal实际对生产效率和项目质量几乎不产生提升效果,我们忽略它的意义;
[解决办法]
没人直接回答,是因为这个题目本身是关于策略和编程范式的,这种东西并没有一个明确的答案
我只能举个例子给了,比如我现在有一个person 的实体类
class person{ string 姓名}
[解决办法]
ps:看上面的策略,通过上面的代码去理解他的策略
策略决定代码,而不是是代码决定策略。写代码实际就像写作文和 speak English,首先要做的事情是表达出意思,解决好问题,而不是一开始就去想 主谓宾 定状补(一开始就想主谓宾 定状补的是当不好好诗人 或好作家的)
至于细节上是 “推”还是“敲”,你总得先把“月下僧X门”弄出来了在来看那个X到底是“推”还是“敲”,