栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C#中的默认访问修饰符是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#中的默认访问修饰符是什么?

C#中所有内容的默认访问权限是 “您可以为该成员声明的最严格的访问权限”

因此,例如:

namespace MyCompany{    class Outer    {        void Foo() {}        class Inner {}    }}

相当于

namespace MyCompany{    internal class Outer    {        private void Foo() {}        private class Inner {}    }}

这种情况的一种例外是,使属性(通常是setter)的一部分比声明的属性本身可访问性受到更多限制:

public string Name{    get { ... }    private set { ... } // This isn't the default, have to do it explicitly}

这是C#3.0规范要说的(第3.5.1节):

根据成员声明发生的上下文,仅允许某些类型的声明的可访问性。此外,当成员声明中不包含任何访问修饰符时,声明发生的上下文将确定默认的声明可访问性。

  • 命名空间隐式具有公共声明的可访问性。名称空间声明中不允许使用访问修饰符。
  • 在编译单元或命名空间中声明的类型可以具有公共或内部声明的可访问性,并且默认为内部声明的可访问性。
    *类成员可以具有五种声明的可访问性中的任何一种,并且默认为私有声明的可访问性。(请注意,声明为类的成员的类型可以具有五种声明的可访问性中的任何一种,而声明为命名空间的成员的类型只能具有公共或内部声明的可访问性。)
    *Struct成员可以具有public,internal或private声明的可访问性,并且默认为private声明的可访问性,因为结构是隐式密封的。在结构中引入的Struct成员(即不被该结构继承)不能具有受保护的或受保护的内部声明的可访问性。(请注意,声明为结构成员的类型可以具有公共,内部或私有声明的可访问性,而声明为命名空间成员的类型只能具有公共或内部声明的可访问性。)

  • 接口成员隐式具有公共声明的可访问性。接口成员声明上不允许使用访问修饰符。
  • 枚举成员隐式具有公开声明的可访问性。枚举成员声明中不允许使用访问修饰符。

(请注意,嵌套类型将位于“类成员”或“结构成员”部分下,因此默认为私有可见性。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/597012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号