c# 的默认访问修饰符小结(转)

c# 的访问修饰符是private 还是 internal?

准确的说,不能一概而论。

[MSDN]

Classes and structs that are not nested within other classes or structs can be either public or internal. A type declared as public is accessible by any other type. A type declared as internal is only accessible by types within the same assembly. Classes and structs are declared as internal by default unless the keyword public is added to the class definition, as in the previous example. Class or struct definitions can add the internal keyword to make their access level explicit. Access modifiers do not affect the class or struct itself — it always has access to itself and all of its own members.

类(class)或结构(struct)如果不是在其它类或结构中的话,它的访问类型要不就是internal, 要不就是public;

换句话说,如果它在其它类或结构中的话,则可以为private 或protected等。下面我说的类和结构,如无特殊说明,均指非"类中类"

类或结构的默认访问类型是internal.

类中所有的成员,默认均为private。

[MSDN]

Interfaces, like classes, can be declared as public or internal types. Unlike classes, interfaces default to internal access. Interface members are always public, and no access modifiers can be applied.

Namespaces and enumeration members are always public, and no access modifiers can be applied.

Delegates have internal access by default.

Any types declared within a namespace or at the top level of a compilation unit (for example, not within a namespace, class, or struct) are internal by default, but can be made public.

接口默认访问符是internal

接口的成员默认访问修饰符是public,也不可能是其他访问修饰符

命名空间,枚举类型成员默认public,也不可能是其他访问修饰符

委托,默认internal

在命名空间内部或编译单元顶部的所有类型,默认是internal,可以人为改为public。

时间: 2024-09-28 05:11:28

c# 的默认访问修饰符小结(转)的相关文章

C#中的默认访问修饰符

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

C#中的访问修饰符,默认访问修饰符

c#中的访问修饰符   public :公开的公共的 private:私有的,只能在当前类的内部访问 protected:受保护的,只能在当前类的内部以及该类的子类中访问. internal:只能在当前项目中访问.在同一个项目中,internal和public的权限是一样. protected internal:protected+internal 默认访问修饰符 默认情况下,类型成员是隐式私有的,而类型是隐式内部的.类型默认构造函数是私有的. protect和private拿去声明类型,除非这

C# 默认访问修饰符

c# 中类,成员,枚举,结构等默认访问修饰符是? 根据MSDN文档有: [MSDN] Classes and structs that are not nested within other classes or structs can be either public or internal. A type declared as public is accessible by any other type. A type declared as internal is only access

scala学习手记10 - 访问修饰符

scala的访问修饰符有如下几个特性: 如果不指定访问修饰符,scala默认为public: 较之Java,scala对protected的定义更加严格: scala可以对可见性进行细粒度的控制. scala的默认访问修饰符 如果没有修饰符,scala会默认把类.字段.方法的访问修饰符当做public.如果要将之调整为private或protected,只需在前面添加对应的修饰符关键字即可.就如下面的程序: class Microwave{ def start() = println("star

类的构造方法和析构方法和封装的目的和封装的做法+访问修饰符

一.封装的目的:为了让类更安全. 封装的做法: ①类里面的成员变量做为private ②使用成员方法来间接访问成员变量 ③在该方法里面加限制条件 注意:PHP类里面不允许出现同名方法. 二.访问修饰符 ①public:代表公有的,在任何地方都可以访问. ②protected:代表受保护的,只能在该类或该类的子类中访问. ③private:代表私有的,只能在该类中访问. 三.类的构造方法注意事项 ①构造方法名可以和类相同,也可以使用__construct();提倡时候后者. ②构造方法没有返回值.

C#类、方法的访问修饰符

这篇文章主要介绍了C#类的访问修饰符用法,较为详细的分析了C#类的访问修饰符概念与用法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文详细分析了C#类的访问修饰符用法,分享给大家供大家参考.具体用法分析如下: 默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它.可以用internal访问修饰符关键字显式指定,但这不是必须的,类在定义时默认为此类型的类.但是C# 方法默认访问级别: private. 方法或者属性的修饰符的访问级别如下图: 访问修饰符 意 义 public 访问不受限

C# 封装的访问修饰符

封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中".在面向对象程序设计方法论中,封装是为了防止对实现细节的访问. 抽象和封装是面向对象程序设计的相关特性.抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象. C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现. 一个 访问修饰符 定义了一个类成员的范围和可见性.C# 支持的访问修饰符如下所示: Public:所有对象都可以访问: Private:对象本身在对象内部可以访问: Protected

C#基础回顾(一)—C#访问修饰符

一.写在前面的话 好久没有停下来总结自己,转眼间15年过去好些天,回首过去的日子,亦或失去,亦或所得!生活的节奏,常常让我们带着急急忙忙的节奏去追赶,也许这并不是每个人所期望的生活方式!于他人,于自己,都是平凡生活中的小人物,不奢求荣华富贵,不祈求飞黄腾达,但求得心安理得,平安无恙,拥有属于自己的那一份小幸福足以!从本篇开始,慢慢悉基础,不急不躁,一步步总结,沉淀自己.也希望和各位高手们学习,愿意虚心接受你们的建议. 二.前言 C#中为了数据的安全性以及代码的拓展,定了几种访问级别,根据对应的访

成员访问修饰符

在面向对象的访问修饰符中常用的有public ,private ,protected C# 访问修饰符: private < protected internal < internal/protected < public 访问修饰符 同一个程序集(项目) 不同的程序集 本类 子类(class嵌套) 实例 public 可以(访问) 可以 可以 可以(实例,继承) protected 可以 可以 不可以 可以(继承) internal 可以 可以 可以 不可以 protected int