`

C#修饰符

阅读更多
1, 访问修饰符

指定声明的类型和类型成员的可访问性。

(1)     public

public关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别。对访问公共成员没有限制。

(2)     private

private关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的。

(3)     internal

internal关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的。

(4)     protected

protected关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。

   

声明的可访问性
含义

public
访问不受限制。

protected
访问仅限于包含类或从包含类派生的类型。

internal
访问仅限于当前程序集。

protected internal
访问仅限于从包含类派生的当前程序集或类型。

private
访问仅限于包含类型。




一个成员或类型只能有一个访问修饰符,使用 protectedinternal 组合时除外。

命名空间上不允许使用访问修饰符。命名空间没有访问限制。

根据发生成员声明的上下文,只允许某些声明的可访问性。如果在成员声明中未指定访问修饰符,则使用默认的可访问性。

不嵌套在其他类型中的顶级类型的可访问性只能是 internal 或 public。这些类型的默认可访问性是 internal。

嵌套类型是其他类型的成员,它们可以具有下表所示的声明的可访问性。

属于  默认的成员可访问性  该成员允许的声明的可访问性 
enum
public


class
private
public

protected

internal

private

protected internal

interface
public


struct
private
public

internal

private


嵌套类型的可访问性取决于它的可访问域,该域是由已声明的成员可访问性和直接包含类型的可访问域这二者共同确定的。但是,嵌套类型的可访问域不能超出包含它的类型的可访问域。




2, abstract

指示某个类只能是其他类的基类。

abstract修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。

3, const

指定无法修改字段或局部变量的值。

const关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。

4, event

声明事件。

类和结构使用事件将出现的可能影响对象状态的事件通知给对象。

5,extern

   指示在外部实现方法。

   extern修饰符用于声明在外部实现的方法。extern修饰符的常见用法是在使用 Interop 服务           调入非托管代码时与 DllImport属性一起使用;在这种情况下,该方法还必须声明为 static。

extern关键字还可以定义外部程序集别名,使得可以从单个程序集中引用同一组件的不同版本。

  将 abstract和 extern修饰符一起使用来修改同一成员是错误的。使用 extern修饰符意味着方法在 C# 代码的外部实现,而使用 abstract修饰符意味着在类中未提供方法实现。

6,new

  从基类成员隐藏继承的成员。

  在用作修饰符时,new关键字可以显式隐藏从基类继承的成员。隐藏继承的成员意味着该成   员的派生版本将替换基类版本。在不使用 new修饰符的情况下隐藏成员是允许的,但会生成警告。使用 new显式隐藏成员会取消此警告,并记录代之以派生版本这一事实。

  若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new修饰符修饰该成员。

   对同一成员同时使用 new和override是错误的,因为这两个修饰符在含义上相互排斥。使用 new会用同样的名称创建一个新成员并使原始成员变为隐藏的,而 override则扩展继承成员的实现。

   在不隐藏继承成员的声明中使用 new修饰符将会生成警告。

7,override

提供从基类继承的虚拟成员的新实现。

   要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override修饰符。

8,partial

在整个同一程序集中定义分部类和结构。

   分部类型定义允许将类、结构或接口的定义拆分到多个文件中。

9,readonly

声明一个字段,该字段只能赋值为该声明的一部分或者在同一个类的构造函数中。

   readonly关键字是可以在字段上使用的修饰符。当字段声明包括 readonly修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。在此示例中,字段year的值无法在ChangeYear方法中更改,即使在类构造函数中给它赋了值。

10,sealed

指定类不能被继承。

sealed修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed修饰符必须始终与override一起使用。

在类声明中使用 sealed修饰符可防止继承此类,



11,static

声明属于类型本身而不是属于特定对象的成员。

    使用 static修饰符声明属于类型本身而不是属于特定对象的静态成员。static修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。

12,unsafe

声明不安全的上下文。

unsafe关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的。



13,virtual

在派生类中声明其实现可由重写成员更改的方法或访问器。

virtual关键字用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象。

调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员。

默认情况下,方法是非虚拟的。不能重写非虚方法。

virtual修饰符不能与 static、abstract和 override修饰符一起使用。

除了声明和调用语法不同外,虚拟属性的行为与抽象方法一样。

·         在静态属性上使用 virtual修饰符是错误的。

·         通过包括使用 override修饰符的属性声明,可在派生类中重写虚拟继承属性。



14,volatile

指示字段可由操作系统、硬件或并发执行线程等在程序中进行修改。

volatile关键字表示字段可能被多个并发执行线程修改。声明为 volatile的字段不受编译器优化(假定由单个线程访问)的限制。这样可以确保该字段在任何时间呈现的都是最新的值。

volatile修饰符通常用于由多个线程访问而不使用 lock 语句(C# 参考)语句对访问进行序列化的字段。有关在多线程方案中使用 volatile的示例,请参见如何:创建和终止线程(C# 编程指南)。

volatile关键字可应用于以下类型:

·         引用类型。

·         指针类型(在不安全的上下文中)。

·         整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。

·         具有整数基类型的枚举类型。

·         已知为引用类型的泛型类型参数。

·         IntPtr 和 UIntPtr。

所涉及的类型必须是类或结构的字段。不能将局部变量声明为 volatile。





http://msdn2.microsoft.com/zh-cn/library/ba0a1yw2(VS.80).aspx

http://www.cnblogs.com/Athrun/archive/2007/11/16/961137.html



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yangjuniishz/archive/2008/01/25/2064805.aspx
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    C#修饰符介绍

    C#修饰符介绍 C#修饰符是C#编程语言中的一种关键字,用于定义类、类成员、方法和字段的访问级别、行为和特性。了解C#修饰符的使用可以帮助开发人员更好地编写、维护和重用代码。 一、类定义中可使用的访问修饰符 ...

    C#修饰符总结

    C#是一种广泛使用的面向对象的编程语言,其强大的功能很大程度上归功于各种各样的修饰符。修饰符是用于在代码中定义访问级别、控制流程、实现多态性等的关键元素。在这里,我们将深入探讨C#中的主要修饰符,帮助你...

    C#学习之路--访问修饰符

    C#学习之路--访问修饰符 访问修饰符是C#语言中的一种机制,用于控制对象的访问权限。在C#中,访问修饰符有五种:private(私有的)、protected(受保护的)、internal(程序集内部的)、public(公开的)和...

    C#访问修饰符的简介

    在C#编程语言中,访问修饰符是用来控制类、接口、结构、枚举以及它们的成员(如字段、方法、属性等)的可访问性的关键元素。这些修饰符定义了哪些代码可以访问特定的类型或成员,从而确保了代码的封装性和安全性。...

    C#类修饰符大全

    ### C#类修饰符详解 在C#编程中,类及其成员的可见性和特性可以通过不同的修饰符进行控制。本文将详细介绍C#中的类修饰符及其使用场景,帮助开发者更好地理解和运用这些修饰符。 #### 类修饰符 - **public**:...

    c#的访问修饰符

    C#的访问修饰符 C#语言中提供了多种访问修饰符,以控制类、成员变量和成员方法的访问权限。这些修饰符可以分为两类:访问修饰符和非访问修饰符。 访问修饰符包括public、private、protected、internal、protected ...

    C#访问修饰符.zip

    在C#编程语言中,访问修饰符是控制类、接口、结构、方法、属性、字段等成员的可访问性的关键工具。这些修饰符定义了代码的封装性,是面向对象编程的重要组成部分。以下是对C#中主要访问修饰符的详细说明: 1. **...

    c#和java中的访问修饰符

    知道c#中类和接口等默认修饰符吗?知道其成员的吗?知道各修饰符的作用吗?看看绝对帮到你。。

    C#访问修饰符Test.zip

    在C#编程语言中,访问修饰符是控制类、接口、结构、方法、属性、字段等成员的可访问性的重要工具。这些修饰符定义了它们的可见性,从而影响了其他代码可以如何使用它们。本篇文章将深入探讨C#中的访问修饰符,包括其...

    Untiy C#参数修饰符

    在C#编程中,参数修饰符是我们在定义方法时用于控制参数传递方式的关键字。Unity引擎,一个广泛用于游戏开发的平台,也基于C#语言,因此理解和掌握这些修饰符对于编写高效、灵活的代码至关重要。本文将深入探讨Unity...

    类修饰符大全

    C#中的类修饰符是控制类及其成员访问权限和行为的关键元素。它们帮助开发者定义类的可见性、继承性、实例化方式等特性。以下是C#中类修饰符的详细说明: 1. **Public**: 公共访问修饰符,允许任何代码在任何位置...

    C#语言中的修饰符汇总

    下面主要从C#中的访问修饰符,作用于类和结构的修饰符,用在方法或变量的修饰符和特殊作用的修饰符四种,来给大家介绍。 1. 访问修饰符 指定声明的类型和类型成员的可访问性。 (1) public:是类型和类型成员的访问...

    继承与访问修饰符知识点

    在C#中,类的继承中主要有四种访问修饰符:`public`、`protected`、`internal`和`private`。它们决定了以下五种可访问性级别: 1. `public`:任何地方都可以访问,没有任何限制。 2. `protected`:只有包含类本身和...

    正则表达式模式修饰符

    如果设置了这个修饰符,模式中的字母会进行大小写不敏感匹配。 m (PCRE_MULTILINE) 默认情况下,PCRE 认为目标字符串是由单行字符组成的(然而实际上它可能会包含多行), “行首”元字符 (^) 仅匹配字符串的开始位置...

    c#的默认访问修饰符小结[文].pdf

    C#是一种面向对象的编程语言,它通过访问修饰符来控制类、接口、方法等元素的访问级别。本文主要总结了C#中的默认访问修饰符及其应用规则。 首先,C#中有五种基本的访问修饰符: 1. `public`:公开的,允许任何...

    sealed 修饰符是干什么的?

    sealed 修饰符表示密封用于类时,表示该类不能再被继承,不能和 abstract 同时使用,因为这两个修饰符在含义上互相排斥用于方法和属性时,表示该方法或属性不能再被重写,必须和 override 关键字一起使用,

Global site tag (gtag.js) - Google Analytics