C#访问修饰符详细剖析

开发 后端
这里介绍C#访问修饰符与 Java 大致相同,我们将在这一部分介绍其中的一些细微差别。每个类成员或类本身都可以用C#访问修饰符进行声明,以定义许可访问的范围。

本文向大家介绍C#访问修饰符,可能好多人还不了解修饰符,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

C#访问修饰符

C#访问修饰符与 Java 大致相同,我们将在这一部分介绍其中的一些细微差别。每个类成员或类本身都可以用C#访问修饰符进行声明,以定义许可访问的范围。没有在其他类中声明的类只能指定 public 或 internal 修饰符,而嵌套的类(如其他的类成员)可以指定下面五个修饰符中的任何一个:
◆public:对所有类可见
◆protected:仅从派生类中可见
◆private:仅在给定的类中可见
◆internal:仅在相同的程序集中可见
◆protected internal:仅对当前的程序集或从包含类中派生的类型可见

1.public、protected 和 private 修饰符
public 修饰符使得可以从类内外的任何地方访问成员。protected 修饰符表示访问仅限于包含类或从它派生的类。private 修饰符意味着只可能从包含类型中进行访问。

2.internal 修饰符
internal 项只可以在当前的程序集中进行访问。.NET 中的程序集大致等同于 Java 的 JAR 文件,它表示可以从中构造其他程序的生成块。

3.protected internal 修饰符
protected internal 项仅对当前程序集或从包含类派生的类型可见。默认C#访问修饰符是 private,而 Java 的默认C#访问修饰符是包范围。

4.sealed 修饰符
在其类声明中带有 sealed 修饰符的类可以认为是与抽象类完全相反的类:它不能被继承。我们可以将一个类标记为 sealed,以防止其他类重写它的功能。自然地,sealed 类不能是抽象的。同时还需要注意,该结构是隐式密封的;因此,它们不能被继承。sealed 修饰符相当于在 Java 中用 final 关键字标记类。

5.readonly 修饰符
要在 C# 中定义常量,我们可以使用 const 或 readonly 修饰符替换 Java 的 final 关键字。在 C# 中,这两个修饰符之间的区别在于,const 项是在编译时处理的,而 readonly 字段是在运行时设置的。这可以允许我们修改用于在运行时确定 readonly 字段值的表达式。

这意味着给 readonly 字段的赋值可以出现在类构造函数及声明中。例如,下面的类声明了一个名为 IntegerVariable 的 readonly 变量,它是在类构造函数中初始化的:

  1. using System;  
  2. public class ReadOnlyClass  
  3. {  
  4. private readonly int IntegerConstant;  
  5.  
  6. public ReadOnlyClass ()  
  7. {  
  8. IntegerConstant = 5;  
  9. }  
  10. // We get a compile time error if we try to set the value of the readonly  
  11. //class variable outside of the constructor  
  12. public int IntMember  
  13. {  
  14. set  
  15. {  
  16. IntegerConstant = value;  
  17. }  
  18. get  
  19. {  
  20. return IntegerConstant;  
  21. }  
  22. }  
  23.  
  24. public static void Main(string[] args)  
  25. {  
  26. ReadOnlyClass objnew ReadOnlyClass();  
  27.  
  28. // We cannot perform this operation on a readonly field  
  29. obj.IntMember = 100;  
  30. Console.WriteLine("Value of IntegerConstant field is {0}",  
  31.  obj.IntMember);  
  32. }  

【编辑推荐】

  1. C# SystemMenu类介绍
  2. C# VSProject对象基础介绍
  3. C#创建Web应用程序项目剖析
  4. C#调用Windows服务项目基础描述
  5. C#建立项目简单分析
责任编辑:佚名 来源: 新浪科技
相关推荐

2009-09-02 17:14:28

C#修饰符

2009-08-24 16:49:39

C#修饰符

2009-08-27 11:12:03

C# abstract

2009-08-21 13:58:06

C# virtual修

2009-08-27 13:06:13

C# new修饰符

2009-08-27 11:04:08

C# extern修饰

2009-08-27 11:16:40

C# sealed修饰

2009-09-02 17:04:35

C# Extern修饰

2011-06-28 09:29:11

C#修饰符

2011-07-20 16:50:39

inlinec++

2011-07-20 16:57:05

C++const

2011-07-20 16:48:22

C++static

2024-09-27 09:50:11

C#正则表达式

2010-01-11 18:46:15

VB.NET修饰符

2009-08-27 17:14:36

C# Socket

2009-06-12 13:37:47

访问权限修饰符Java教程

2009-06-19 10:51:39

Scalapackage访问修饰符

2009-09-11 11:17:04

C#引用类型

2009-09-03 16:58:49

C#内存管理

2009-08-31 17:26:32

C#异常处理
点赞
收藏

51CTO技术栈公众号