2012-03-08 144 views
0

我有3点方面的问题Oops Concepts类和访问修饰符在.NET

  1. 什么是命名空间中的类的默认访问修饰符,我试图修改器适用于类,.NET编译扔错误称`命名空间中定义的元素不能被明确地声明为私有,受保护或受保护的朋友。下面是我的代码。 Access Modifiers for the class in c#

  2. 是什么protected internal and internal内部之间的差异可以在组件内使用,并且相同的组件内受保护的内部可以在相同的类中使用,继承的类或其他类。基本上这里是什么意思汇编。

  3. 如果有2类Class1 and Class2 Class1的有Method1()Class2Method2(),如果两者都在继承链,然后Class1 c = new Class2();应允许访问Method2();因为这里的新对象是Class2为什么.NET允许Method1();我想这。
+3

最好在这里提出一个关于S.O的问题。 – Nick 2012-03-08 08:58:57

+0

@阿巴斯,尼克是对的 - 我们通常是一个问题,一个回答社区 – 2012-03-08 09:03:49

+0

不知何故,我认为截图是照片购物。 'class1'没有明确声明为私有。 – 2012-03-08 09:12:26

回答

2

1)内部

2)要么派生类(可能在不同的组件)在相同的组件中的任何的代码可以访问

3)你有一个参考一个class1其中没有method2 - 您需要参考class2才能拨打method2

+0

如果受保护的内部允许访问程序集中的代码,那么内部和受保护的内部之间有什么区别,在这种情况下,我也可以使用内部,受保护内部的用途是什么 – Abbas 2012-03-08 09:08:44

+0

因为从类派生的类,程序集,仍然可以访问方法/属性/字段 – 2012-03-08 09:10:05

0

1)有,因为你需要声明为受保护该类或任何更高的访问级别例如公开

3)子类继承超类成员(在这种情况下是一种方法)。尽管您将class2分配给class1,但反过来无法正常工作。