C# 在什么情况下需要将方法定义为pirvate,不想别的类访问?安全性?那有什么情况下是不想别的类访问的呢
那有什么情况下是不想别的类访问的呢?安全性是针对开发者的吗?只是为了防止不小心调用错了方法?那这个安全性是不是没什么实际意义呢?难道private、procted、pub...
那有什么情况下是不想别的类访问的呢?安全性是针对开发者的吗?只是为了防止不小心调用错了方法?那这个安全性是不是没什么实际意义呢?
难道private、procted、public等修饰符只是为了满足面向对象的编程规范?知道定义为private是不想让人访问,但什么情况下会有这种需要呢?全部定义为Public不更好吗,内部、外部都可以访问。我就遇到过一种情况,我先也是想一些方法应该只有在本类中才会调用,但做到后来发现在子类中也要用到,结果又去把那些方法的修饰符改为procted,随之觉得我为什么不全都定义为public呢,这样有什么不好吗? 展开
难道private、procted、public等修饰符只是为了满足面向对象的编程规范?知道定义为private是不想让人访问,但什么情况下会有这种需要呢?全部定义为Public不更好吗,内部、外部都可以访问。我就遇到过一种情况,我先也是想一些方法应该只有在本类中才会调用,但做到后来发现在子类中也要用到,结果又去把那些方法的修饰符改为procted,随之觉得我为什么不全都定义为public呢,这样有什么不好吗? 展开
4个回答
展开全部
定义private等的确是面向对象编程规范的需要(封装性)。有这种需要的情况很多:
1.安全性。例如数据库密码、账户密码等;
2.稳定性。尽量把变量定义为private,使其它调用者只需要了解更少的接口,避免出错;
3.方便性。你也不想vs的智能提示列出几十上百个变量、属性让你选择吧?
你说的最后一点是有缺陷的设计的问题,而并非private不好
1.安全性。例如数据库密码、账户密码等;
2.稳定性。尽量把变量定义为private,使其它调用者只需要了解更少的接口,避免出错;
3.方便性。你也不想vs的智能提示列出几十上百个变量、属性让你选择吧?
你说的最后一点是有缺陷的设计的问题,而并非private不好
追问
谢谢您的回答,稳定性和方便性都能理解,安全性的话你讲的比如数据库密码,我想定义为private也只是防止开发者在开发中不小心调用到吧?和于安全性是不是没什么关联呢,如果定义为public会有什么后果?
追答
是这样,你写的东西可能是作为类库(dll)发布给其他开发者调用,就好像微软的程序员写的.net类库由我们调用一样。如果定义为public,其他开发人员就可以获取到你的密码等信息。
展开全部
private 是保护的意思,在private这个类中定义的变量叫局部变量,只能在这个类里使用,而在同一命名空间下别的类不能访问,防止变量名的重复……,避免很多错误,既是对开发者的安全性又有对使用者安全性的意思,凡事没有绝对的嘛,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义为private的方法为私有方法 对象无法直接调用
但是可以在类中调用
就是这个方法不足以实现一个功能 只是完成部分功能 不需要设置为共有方法
但是可以在类中调用
就是这个方法不足以实现一个功能 只是完成部分功能 不需要设置为共有方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-31
展开全部
因为一个大项目需要一个团队的人共同做的!
假如你编了一个类和同项目另一个人编的类名一样,整合时就会出错了。
所以定义为保护的,只在内部可以使用,外部定义的同名的就是另外的一个类
假如你编了一个类和同项目另一个人编的类名一样,整合时就会出错了。
所以定义为保护的,只在内部可以使用,外部定义的同名的就是另外的一个类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询