面向对象编程基本概念(C#)

面向对象编程基本概念(C#),c#,asp.net,oop,inheritance,abstraction,C#,Asp.net,Oop,Inheritance,Abstraction,如我们所知 默认修饰符 阶级 结构 委派 接口 枚举 是内部的 默认情况下,枚举和接口成员是公共的 默认情况下,类、结构和委托成员是私有的 同一类库的非派生类可以访问公共类和内部类 (以及公共、内部、受保护的内部成员) 不同类库的非派生类可以访问公共类 (仅限公众成员) 不同类库的派生类可以访问公共类 (公共、受保护、受保护的内部成员) 现在我想了解的核心概念是为什么 受保护的成员比内部成员具有更多的作用域?受保护的意思是,不能在派生类中重写此成员或方法。否则,它们的行为类似于公共成员/方法

如我们所知

默认修饰符

  • 阶级
  • 结构
  • 委派
  • 接口
  • 枚举
是内部的

  • 默认情况下,枚举和接口成员是公共的

  • 默认情况下,类、结构和委托成员是私有的

  • 同一类库的非派生类可以访问公共类和内部类 (以及公共、内部、受保护的内部成员)

  • 不同类库的非派生类可以访问公共类 (仅限公众成员)

  • 不同类库的派生类可以访问公共类 (公共、受保护、受保护的内部成员)

  • 现在我想了解的核心概念是为什么

    受保护的成员比内部成员具有更多的作用域?

    受保护的意思是,不能在派生类中重写此成员或方法。否则,它们的行为类似于公共成员/方法。

    受保护只是意味着,此成员或方法不能在派生类中被重写。否则,它们的行为类似于公共成员/方法

    为什么会这样。。。受保护成员的作用域大于内部成员

    因为可以跨程序集访问
    受保护的
    成员,但
    内部
    的情况并非如此

    internal
    只能在同一程序集中的文件中访问内部成员。其范围仅限于组装

    受保护
    可在部件外部访问。受保护成员可以从声明该成员的类内以及从声明该成员的类派生的任何类内访问。此派生类可以位于程序集外部

    因此,它比
    内部
    修饰符具有更大的范围

    为什么会这样。。。受保护成员的作用域大于内部成员

    因为可以跨程序集访问
    受保护的
    成员,但
    内部
    的情况并非如此

    internal
    只能在同一程序集中的文件中访问内部成员。其范围仅限于组装

    受保护
    可在部件外部访问。受保护成员可以从声明该成员的类内以及从声明该成员的类派生的任何类内访问。此派生类可以位于程序集外部


    因此,它的作用域比内部修改器更大。

    内部成员未声明要导出,因此无法在模块的dll外部看到它们。

    内部成员未声明要导出,因此无法在模块外部看到它们,它们的dll。

    来自:

    受保护

    类型或成员只能由同一类或组中的代码访问 结构,或在从该类派生的类中

    内部

    同一程序集中的任何代码都可以访问该类型或成员, 但不是来自另一个大会

    受保护的内部

    中的程序集中的任何代码都可以访问该类型或成员 它是声明的,或者来自另一个派生类中的派生类 装配从其他程序集的访问必须在类中进行 从受保护对象所在的类派生的声明 声明内部元素,并且必须通过 派生类类型的实例

    从:

    受保护

    类型或成员只能由同一类或组中的代码访问 结构,或在从该类派生的类中

    内部

    同一程序集中的任何代码都可以访问该类型或成员, 但不是来自另一个大会

    受保护的内部

    中的程序集中的任何代码都可以访问该类型或成员 它是声明的,或者来自另一个派生类中的派生类 装配从其他程序集的访问必须在类中进行 从受保护对象所在的类派生的声明 声明内部元素,并且必须通过 派生类类型的实例

    4) 不同类库的非派生类可以访问公共类(公共、受保护、受保护的内部成员)

    这是不对的

    4) 不同类库的非派生类可以访问公共类(仅限公共成员)

    这意味着实际问题也是有争议的:

    为什么会这样。。。受保护成员的作用域大于内部成员

    受保护的
    内部
    具有不同的范围。哪一个更大很难说。以这种方式比较它们根本没有用

    4) 不同类库的非派生类可以访问公共类(公共、受保护、受保护的内部成员)

    这是不对的

    4) 不同类库的非派生类可以访问公共类(仅限公共成员)

    这意味着实际问题也是有争议的:

    为什么会这样。。。受保护成员的作用域大于内部成员


    受保护的
    内部
    具有不同的范围。哪一个更大很难说。以这种方式比较它们是没有用的。

    Protected应该编辑为:类型或成员只能由同一类或结构中的代码访问,或者只能在从该类派生的类中访问。可以是相同或不同的程序集。我们正在受保护的内部文件中指定程序集访问级别。那为什么不在保护区呢(因为有必要在那里完全