C# net中的类和访问修饰符

C# net中的类和访问修饰符,c#,oop,access-modifiers,C#,Oop,Access Modifiers,我有3个关于Oops概念的问题: 命名空间中类的默认访问修饰符是什么,我试图将修饰符应用于该类,.net编译器抛出错误,指出`命名空间中定义的元素不能显式声明为private、protected或protected friends。下面是我的代码。 受保护的内部和内部之间有什么区别,因为内部可以在程序集中使用,而受保护的内部可以在同一类、继承类或同一程序集中的其他类中使用。基本上,这里所说的组装是什么意思 如果有两个类Class1和Class2Class1有Method1()和Class2有M

我有3个关于Oops概念的问题:

  • 命名空间中类的默认访问修饰符是什么,我试图将修饰符应用于该类,.net编译器抛出错误,指出`命名空间中定义的元素不能显式声明为private、protected或protected friends。下面是我的代码。

  • 受保护的内部和内部
    之间有什么区别,因为内部可以在程序集中使用,而受保护的内部可以在同一类、继承类或同一程序集中的其他类中使用。基本上,这里所说的组装是什么意思

  • 如果有两个类
    Class1和Class2
    Class1有
    Method1()
    Class2
    Method2()
    ,如果两者都在继承链中,那么
    Class1 c=new Class2()应允许访问
    Method2()
    因为这里的新对象是
    Class2
    那么为什么.net允许
    Method1()
    1) 内部的

    2) 派生类(可能位于不同程序集中)或同一程序集中的任何代码都可以访问

    3) 您对
    class1
    的引用没有
    method2
    -您需要对
    class2
    的引用才能调用
    method2

    内部

    2) 派生类(可能位于不同程序集中)或同一程序集中的任何代码都可以访问

    3) 您对
    class1
    的引用没有
    method2
    -您需要对
    class2
    的引用才能调用
    method2
    ,如问题2所示:

    受保护意味着所有派生类都可以访问该方法,内部意味着此程序集中的所有类都可以访问该方法。内部保护是两者的结合

    下面是一篇关于受保护的内部方法的非常有趣的博文:

    关于问题2:

    受保护意味着所有派生类都可以访问该方法,内部意味着此程序集中的所有类都可以访问该方法。内部保护是两者的结合

    下面是一篇关于受保护的内部方法的非常有趣的博文:

    1)之所以存在,是因为您需要将该类声明为受保护或任何更高的访问级别,例如public

    3) 子类继承超类成员(在本例中为方法)。尽管您正在将class2分配给class1,但反向操作无法工作。

    1)之所以存在,是因为您需要将该类声明为受保护或任何更高的访问级别,例如public


    3) 子类继承超类成员(在本例中为方法)。尽管您将class2分配给class1,但反向操作不起作用。

    最好在s.O.上问一个问题。@Abbas,Nick是对的-我们通常是一个一问一答的社区。不知何故,我认为截图是照片购物的
    class1
    没有显式声明为private。@Henkholtman你知道我也无法理解的是。。。如果你是对的,那是难以置信的奇怪行为indeed@HenkHolterman有时,VS会给您上一次尝试构建时的错误。这条信息在目前的代码状态下没有意义,但我怀疑他是否希望如此。最好在s.O.上问一个问题。@Abbas,Nick是对的——我们通常是一个一问一答的社区。不知何故,我认为截图是照片购物的
    class1
    没有显式声明为private。@Henkholtman你知道我也无法理解的是。。。如果你是对的,那是难以置信的奇怪行为indeed@HenkHolterman有时,VS会给您上一次尝试构建时的错误。该消息对于代码的当前状态没有意义,但我怀疑他是否希望这样。如果protected internal允许访问程序集中的代码,那么internal和protected internal之间的区别是什么,在这种情况下,我也可以使用internal,protected internal的用途是什么,因为从该类派生的类,但是从另一个程序集,仍然可以访问方法/属性/字段如果protected internal允许访问程序集中的代码,那么internal和protected internal之间的区别是什么,在这种情况下,我也可以使用internal,protected internal的用途是什么,因为从该类派生的类,但从另一个程序集,仍然可以访问方法/属性/字段