大学期间我一直在使用public,想知道public, private和protected之间的区别吗?
还有,相对于什么都没有,静态有什么作用呢?
大学期间我一直在使用public,想知道public, private和protected之间的区别吗?
还有,相对于什么都没有,静态有什么作用呢?
当前回答
Private状态表示变量只能被同一类的对象访问。受保护状态将这种访问权限扩展到该类的后代。
“从上表中我们可以看到隐私和受保护之间的区别……我认为两者是一样的....那么这两个单独的命令有什么用呢?
查看MSDN链接了解更多信息
其他回答
Hmm.
参见这里:访问修饰符。
简而言之:
Public使方法或类型从其他类型/类中完全可见。
Private只允许包含私有方法/变量的类型访问私有方法/变量(注意,嵌套类也可以访问包含类的私有方法/变量)。
Protected与private类似,只是派生类也可以访问Protected方法。
“Nothing”是VB。NET等价于null。虽然如果你提到的“nothing”意味着“没有访问修饰符”,那么这要视情况而定,尽管一个非常粗略的经验法则(当然在c#中)是,如果你没有显式地指定访问修饰符,方法/变量声明通常会受到尽可能多的限制。 即。
public class MyClass
{
string s = "";
}
实际上等同于:
public class MyClass
{
private string s = "";
}
当没有显式指定访问修饰符时,链接的MSDN文章将提供完整的描述。
这些访问修饰符指定成员可见的位置。你应该读读这个。以IainMH给出的链接为起点。
静态成员是每个类一个,而不是每个实例一个。
重新发布这个答案的精彩图表。
以下是维恩图中的所有访问修饰语,从更有限制的到更混杂的: 私人: private protected: c# 7.2新增 内部: 保护: 保护内部: 公众:
关于虚无的问题
默认情况下,命名空间类型是内部的 默认情况下,包括嵌套类型在内的任何类型成员都是私有的
Public -如果你能看到类,那么你也能看到方法
Private -如果你是类的一部分,那么你可以看到这个方法,否则就不能。
Protected -与Private相同,加上所有后代也可以看到该方法。
静态(类)——还记得“类”和“对象”之间的区别吗?忘掉这些吧。“static”也是如此。类是自身的唯一实例。
静态(方法)——无论何时使用这个方法,它都有一个独立于它所属类的实际实例的参考框架。