C#修饰符详解+

来源:互联网 发布:管理学网络计划图例题 编辑:程序博客网 时间:2024/05/21 07:53

什么是修饰符?

修饰符是用于限定类型以及类型成员的申明的一种符号。

 

访问修饰符有哪些?

 

4个访问修饰符(是添加到类、结构或成员声明的关键字)

 

Public:公有的,是类型和类型成员的访问修饰符。对其访问没有限制。

Internal:内部的,是类型和类型成员的访问修饰符。同一个程序集中的所有类都可以访问

Private:私有的,是一个成员访问修饰符。只有在声明它们的类和结构中才可以访问。

Protected::受保护的,是一个成员访问修饰符。只能在它的类和它的派生类中访问。

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

 

(在这里同一个程序集是指同一个.cs文件,不同的.cs文件的命名空间省略)

 

 

类修饰符

 

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

 

Abstract:抽象类,只能是其他类的基类。类中的方法只声明不实现,方法的实现在他的派生类中完成。

 

Sealed:指定类不能被继承。

 

 

成员修饰符

  

Partial:在整个同一程序集中定义分部类和结构,详解见问题1。

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

Override:提供从基类继承的成员的新实现

New:作修饰符,隐藏从基类成员继承的成员,在不使用 new 修饰符的情况下隐藏成员是允许的,但会生成警告。作运算符,用于创建对象和调用构造函数。

      Extern:用于声明在外部实现的方法。 extern 修饰符的常见用法是在使         

 

常见成员类型的访问修饰符?

(1)接口(interface)

接口成员访问修饰符默认为public,且不能显示使用访问修饰符。

 

(2)类(class)

构造函数默认为public访问修饰符。

析构函数不能显示使用访问修饰符且默认为private访问修饰符。 

类的成员默认访问修饰符为private; 

 

(3)枚举(enum)

枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。

 

(4)结构(struct) 

结构成员默认为private修饰符。 

结构成员无法声明为protected成员,因为结构不支持继承。 

 

(5)嵌套类型

嵌套类型的默认访问修饰符为private。和类,结构的成员默认访问类型一致。

 

 

 

访问修饰符有哪些需要注意?

 

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

·如果在成员声明中未指定访问修饰符,则使用默认的可访问性

·Virtual,override和new 的区别

1.       virtual和override配套使用。在基类base中声明了虚方法method()并用virtual修饰,在子类derived中重写方法method()并用override修饰。那么当将子类的实例赋予基类的对象(不需要强制转换)时即BaseBclass= new Derived();Bclass.Method()是调用了子类的method()方法,而不是基类的。所以

2.       new不需要和virtual配套使用。在基类base中声明了方法method(),在子类derived中声明了同名的方法method()并用new修饰。那么当将子类的实例赋予基类的对象时即BaseBclass= new Derived();Bclass.Method()是调用了基类类的method()方法,而不是子类的。

3.       这说明,override可以覆盖基类的方法,让基类的方法以子类的内容实现,而new不用来覆盖基类的方法,而是全新定义一个子类的方法,这个方法只属于子类,与基类的方法无关,只是名字上相同而已.

 

   类型成员默认的可访问性

属于

默认的成员可访问性

该成员允许的声明的可访问性

enum

public

class

private

public

protected

internal

private

protected internal

interface

public

struct

private

public

internal

private

 

 

 

参考:

https://msdn.microsoft.com/zh-cn/library/wxh6fsc7.aspx

http://blog.csdn.net/susan19890313/article/details/7575228

原创粉丝点击