欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > C# 类和继承(成员访回修饰符)

C# 类和继承(成员访回修饰符)

2025/6/6 1:41:11 来源:https://blog.csdn.net/weixin_42291376/article/details/148390899  浏览:    关键词:C# 类和继承(成员访回修饰符)

成员访回修饰符

本章之前的两节阐述了类的可访问性。对类的可访问性,只有两种修饰符:internal和public。
本节阐述成员的可访问性。类的可访问性描述了类的可见性;成员的可访问性描述了类成员的可
见性。

声明在类中的每个成员对系统的不同部分可见,这依赖于类声明中指派给它的访问修饰符。
你已经看到private成员仅对同一类的其他成员可见,而public成员对程序集外部的类也可见。
在这一节,我们将再次研究public和private访问级别,以及其他3个可访问性级别。
在研究成员访问性的细节之前,首先阐述一些通用内容。

在研究成员访问性的细节之前,首先阐述一些通用内容。

  • 所有显式声明在类声明中的成员都是互相可见的,无论它们的访问性如何。
  • 继承的成员不在类的声明中显式声明,所以,如你所见,继承的成员对派生类的成员可
    以是可见的,也可以是不可见的。
  • 以下是5个成员访问级别的名称。目前为止我们只介绍了public和private。
    • public
    • private
    • protected
    • internal
    • protected internal
  • 必须对每个成员指定成员访问级别。如果不指定某个成员的访问级别,它的喼式访问级
    别为private。
  • 成员的可访问性不能比它的类高。也就是说,如果一个类的可访问性限于它所在的程序
    集,那么类的成员在程序集的外部也不可见,无论它们的访问修饰符是什么,public也不
    例外。

访问成员的区域

类通过成员的访问修饰符指明了哪些成员可以被其他类访问。你已经了解了public和
private修饰符。下面的类中声明了5种访问级别的成员

public class MyClass{public  int Member1;private int Member2;protected int Member3;internal int Member4;protected internal int Member5;
}

另一个类(如类B)能否访问这些成员取决于该类的两个特征。

  • 类是否派生自MyClass类。

  • 类B是否和MyClass类在同一程序集。
    这两个特征划分出4个集合,如图8-15所示。与MyClass类相比,其他类可以是下面任意一种。

  • 在同一程序集且继承MyClass(右下)。

  • 在同一程序集但不继承MyClass(左下)。

  • 在不同的程序集且继承myClass(右上)。

  • 在不同的程序集且不继承myClass(左上)。
    这些特征用于定义5种访问级别,下一节将详细介绍这一点。

访问性的区域划分

公有成员的可访问性

public访问级别是限制最少的。所有的类,包括程序集内部的类和外部的类都可以自由地访
问成员。图8-16阐明了MyClass的public类成员的可访问性。
要声明一个公有成员,使用public访问修饰符,如:

public  int Member1;

公有类的公有成员对同一程序集或其他程序集的所有类可见

私有成员的可访问性

private访问级别是限制最严格的。

  • private类成员只能被它自己的类的成员访问。它不能被其他的类访问,包括继承它的类。
  • 然而,private成员能被嵌套在它的类中的类成员访问。
    图8-17阐明了私有成员的可访问性。

任何类的私有成员只对它自己的类〈或嵌套类)的成员可见

受保护成员的可访问性

protected访问级别如同private访问级别,但它允许派生自该类的类访问该成员。图8-18
阐明了受保护成员的可访问性。注意,即使程序集外部继承该类的类也能访问该成员。

公有类的受保护成员对它自己的类成员或派生类的成员可见。
派生类甚至可以在其他程序集中

内部成员的可访问性

标记为internal的成员对程序集内部的所有类可见,但对程序集外部的类不可见,如图8-19
所示。

内部成员对同一程序集内部的任何类成员可见,但对程序集外部的类不可见

受保护内部成员的可访问性

标记为protected internal的成员对所有继承该类的类以及程序集内部的所有类可见,如
图8-20所示。注意,允许访问的集合是protected修饰符允许访问的类的集合加上internal修
饰符允许访问的类的集合。注意,这是protected和internal的并集,不是交集。

公有类的受保护内部成员对相同程序集的类成员或继承该类的类成员可见。
它对其他程序集中不继承该类的类不可见

成员访问修饰符小结

下面两个表格概括了5种成员访问级别的特征。表词列出了修饰符,并直观地概括了它们
的作用。
成员访问修饰符
图8-21演示了5个成员访问修饰符的可访问级别。

各种成员访问修饰符的相对可访问性

表8-2在表的左边列出了访问修饰符,并在顶部划分出类的类别。派生指类继承声明该成员
的类。非派生指类不继承声明该成员的类。表格单元中对勾的意思是该类别的类可以访问带有相
应修饰符的成员。

成员可访问性总结

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词