C#类详解
类:
类是一种数据结构,它可以包含数据成员(常数和字段)、函数成员(方法、属性、事件、索引器、运算符实例、构造函数静态构造函数和析构函数),以及嵌套类型。类类型支持继承,继承是一种机制,它使派生类可以对基类进行扩展和专用化。
1、 类声明:
属性(可选) 类修饰符(可选) class 标示符 类基(可选) 类体(可选);
2、类修饰符:
类声明可以根据需要包括一个类修饰符序列:
class-modifier(类修饰符):
new
public
protected
internal
private
abstract
sealed
new修饰符适用于嵌套类。它表示所修饰的类会把继承下来的同名成员隐藏起来。
3、抽象类:
abstract:修饰符用于表示所修饰的类是不完整的,并且它只能用做基类。抽象类与非抽象类不同点如下:
抽象类不能直接实例化,并且对抽象类使用new运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
允许抽象类包含抽象成员
抽象类不能被密封
4、密封类:
sealed修饰符用于防止从所修饰的类派生出其他类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体而言,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
5、基类规范:
类声明可以包含基类规范,它定义该类的直接基类和由该类实现的接口。
class-base:(基类:)
:class-type(:类类型)
:interface-type-list(:接口类型列表)
6、基类:
当类类型包含在类基中时,表示该类就是所声明的类的直接基类。如果类声明中没有基类,或所含有的类基只列出接口类型,就假定直接基类就是object,类会从它的直接基类继承成员。
类类型的直接基类不能是下列类型:System.Array, System.Delegate, System.Enum, System.ValueType。
类的基类包括它的直接基类及该直接基类的基类。
除了类object,每个类有且只有一个直接基类。object类没有任何直接基类,并且是所有其他类的终极基类。
7、接口实现:
类基规范中可以包含接口类型列表,这表示所声明的类实现所列出的各个接口类型。
8、类体:
类体用于定义该类的成员。
class-body:(类体)
{ class-member-declarationsopt }( {类成员声明可选})
9、类成员:
类成员有两部分组成:有它的类成员声明引入的成员;从它的直接基类继承来的成员
class-member-declarations:(类成员声明:)
constant-declaration:(常数声明:)
field-declaration:
method-declaration:
property-declaration:
event-declaration:
indexer-declaration:
operator-declaration:
constructor-declaration:
destructor-declaration:
static-constructor-declaration:
type-declaration:
C#类详解的更多相关文章
- java之StringBuffer类详解
StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...
- java之AbstractStringBuilder类详解
目录 AbstractStringBuilder类 字段 构造器 方法 public abstract String toString() 扩充容量 void expandCapacity(in ...
- java之StringBuilder类详解
StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...
- Java String类详解
Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...
- QAction类详解:
先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action tha ...
- JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表
一.struts2是什么 1.概念 2.struts2使用优势以及历史 二.搭建struts2框架 1.导包 (解压缩)struts2-blank.war就会看到 2.书写Action类 public ...
- Struts2-整理笔记(二)常量配置、动态方法调用、Action类详解
1.修改struts2常量配置(3种) 第一种 在str/struts.xml中添加constant标签 <struts> <!-- 如果使用使用动态方法调用和include冲突 - ...
- C# 内置 DateTime类详解
C# 内置 DateTime类详解 摘抄自微软官方文档,用来方便自己查阅:网址:https://msdn.microsoft.com/zh-cn/library/system.datetime(v=v ...
- Android游戏开发之旅 View类详解
Android游戏开发之旅 View类详解 自定义 View的常用方法: onFinishInflate() 当View中所有的子控件 均被映射成xml后触发 onMeasure(int, int) ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
随机推荐
- MapReduce 表连接
题目描述: 根据给定的关系 child parent Tom Lucy Tom Jack Jone Lucy Jone Jack Lucy Mary Lucy Ben Jack Alice Jack ...
- 必须熟悉的vim快捷键操作
转载请表明出处http://www.dabu.info/?p=801 Vim/Vi 没有菜单,只有命令 Vim/Vi 工作模式介绍:插入模式 和 命令模式 是vi的两个基本模式.——插入模式 ,是用 ...
- STM32F412应用开发笔记之八:迪文串口屏显示驱动
迪文的显示屏使用起来比较方便,其使用串口通讯,即可支持RS232,又可以支持TTL电平.在NUCLEO-F412ZG实验板上,USART2已经引到了CN9上,我们就利用USART2来实现与迪文串口屏的 ...
- 只要单片机具有真正唯一ID,就可以让加密坚不可摧(转)
源:只要单片机具有真正唯一ID,就可以让加密坚不可摧 http://www.amobbs.com/thread-5518980-1-1.html 第一环:ID-->F1(ID) -----> ...
- JQuery中根据表单元素动态拼接json 字符串
// <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
- UVa 11503 - Virtual Friends
题目大意:给出若干对朋友关系,每给出一对朋友关系,就输出二者所在关系网中的人数. 首先是对每个人编号,使用map简化编号过程,然后就是使用并查集更新集合.要注意的是当给出A和B的朋友关系时,无论A和B ...
- GP项目总结(一)
1.使用activity渲染不同的View时,两种方法: (1.)自定义两个不同的View,然后在mainActivity里根据不同的数据使用不同的View,通过addView()来Activity里 ...
- OC--初始化UINavigationController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...
- delphi TServerSocket的多线程
http://blog.sina.com.cn/s/blog_471218c2010001qc.html unit U_dxc; interface uses Windows, Messages, ...
- java 二维码
在http://www.ostools.net/qr看到了一个生成二维码的工具,于是就产生了一个想法: 为什么自己不做一个二维码的生成和解析工具呢?花了一个多钟的时间,嘿嘿,就做出来啦... 先来看看 ...