在开发C#程序过程中,如果定义的类不写访问修饰符,则类默认的访问类型是

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在开发C#程序过程中,如果定义的类不写访问修饰符,则类默认的访问类型是相关的知识,希望对你有一定的参考价值。

1.命名空间下的元素的默认访问修饰符
public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以访问该类型或成员。
internal : 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集不可以访问。

2.各类型中的成员的默认访问修饰符
剩下的修饰符主要是正对继承这个语言特性的,拥有继承的类型有两个类(class)和接口(interface)。public,internal同样可以用于类型成员。
private : 同一类和结构的代码可以访问该类型和成员。
protected : 同一类和派生(继承特性)类中的代码可以访问该类型和成员。
protected internal : 同一程序集中的任何代码或其他程序集中的任何派生类都可以访问该类型或成员。

MSDN提示 :
1.) 派生类的可访问性不能高于其基类型。换句话说,不能有从内部类 A 派生的公共类 B。如果允许这种情况,将会使 A 成为公共类,因为 A 的所有受保护的成员或内部成员都可以从派生类访问。
2.) 成员的可访问性决不能高于其包含类型的可访问性。
3.) 可以使用五种访问类型中的任何一种来声明类成员(包括嵌套的类和结构)。

接口(interface)
接口成员访问修饰符默认为public,且不能显示使用访问修饰符。

类(class)
构造函数默认为public访问修饰符。
析构函数不能显示使用访问修饰符且默认为private访问修饰符。
类的成员默认访问修饰符为private;

枚举(enum)
枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。

结构(struct)
结构成员默认为private修饰符。
结构成员无法声明为protected成员,因为结构不支持继承。

嵌套类型
嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致。
参考技术A 省略类的访问修饰符,默认为internal
补充:
省略类成员的访问修饰符,默认为private
参考技术B 类和方法默认的访问级别都是public,属性和字段默认的访问级别是private 参考技术C 默认方法是public,默认类为protected

C# 访问修饰符

类的修饰符

abstract  抽象类,表明其他类是一个不完整的类,只有声明而没有具体的实现。一般只能用来作为其他类的基类,不能单独使用

internal 内部类,是类的默认修饰符。表明本类只能从同一个程序集的其他类中访问

new 新建类,表明由基类中继承而来的、由基类中同名的成员

private 私有类,表明只能在定义它的类中访问这个类

protected 保护类,表明只能在定义它的类中访问这个类,以及该类的子类访问这个类

pulic 公有类,表明该类可以被任何其他类访问

sealed 密封类,说明该类不能再做其他类的基类,该类不能被继承

一个类不能同时既使用抽象类修饰符,又用密封类修饰符

成员变量及成员函数的修饰符

析构函数无修饰符

pulic 公有成员,表明该成员可以被任何其他类访问

private 私有成员,是成员变量和成员函数的默认修饰符

protected 保护成员

pulic 公有类,表明该类可以被任何其他类访问

以上是关于在开发C#程序过程中,如果定义的类不写访问修饰符,则类默认的访问类型是的主要内容,如果未能解决你的问题,请参考以下文章

在Java和c#中如果不写访问修饰符,类和类成员默认的是啥访问修饰符?

C# 访问修饰符

public公共的,意思是任何东西都可以访问public修饰的东西!那不写可以吗?

JAVA中的四种作用域访问修饰符以及各自的关键字个特点是?

访问修饰符

java类中的成员缺省(默认的)的修饰符是啥??