C#精品笔记--1

现代编程语言的特征:

1、自包含,且具有完备的嵌入式文档说明;

2、主要基于PME模型,并且这些类型的资讯可以自由获取到;

3、垃圾回收;

4、类型安全;

     

C#语言特性:

类可以嵌套定义类; 

值类型进一步划分为简单类型、枚举类型和结构类型。结构体作为一种值类型,不需要new来创建,它是即声明即用的。

引用类型进一步划分为类、接口、数组、和委托。

Char是值类型,但多个Char组成的string是引用类型;

C#中的Char,string都是Unicode类型;

八种整型类型分别支持 8 位、16 位、32 位和 64 位整数值的有符号和无符号的形式。

两种浮点类型:float 和 double,分别使用 32 位单精度和 64 位双精度的 IEEE 754 格式表示。

decimal 类型是 128 位的数据类型,适合用于财务计算和货币计算。

枚举类型是具有命名常量的独特的类型。每种枚举类型都具有一个基础类型,该基础类型必须是八种整型之一。

委托类型表示对具有特定参数列表和返回类型的方法的引用。通过委托,我们能够将方法作为实体赋值给变量和作为参数传递。委托类似于在其他某些语言中的函数指针的概念,但是与函数指针不同,委托是面向对象的,并且是类型安全的。

int[] 是一维 int 数组,int[,] 是二维 int 数组,int[][] 是一维 int 数组的一维数组,最后一种也称为交错数组。

加号可以表示“委托组合”,减号可以表示“委托解除”。

checked 语句和 unchecked 语句用于控制整型算术运算和转换的溢出检查上下文。

lock 语句用于获取某个给定对象的互斥锁,执行一个语句,然后释放该锁。

using 语句用于获得一个资源,执行一个语句,然后释放该资源。

Foreach语句比for语句应用更广泛且更方便。语法是

foreach(类型 内部变量 in 集合体)

{

}

在类中,索引器是与以数组方式索引类的实例相关联的操作,事件是可由类生成的通知。

可访问性

含义

public

访问不受限制

protected

访问仅限于此类和从此类派生的类

internal

访问仅限于此程序

protected internal

访问仅限于此程序和从此类派生的类

private

访问仅限于此类

继承意味着一个类隐式地包含其基类的所有成员,但基类的构造函数除外。派生类能够在继承基类的基础上添加新的成员,但是它不能移除继承成员的定义。

方法的签名在声明该方法的类中必须唯一。

有四种类型的参数:值参数、引用参数、输出参数和参数数组。一个值参数相当于一个局部变量,只是它的初始值来自为该形参传递的实参。引用参数用于输入和输出参数传递,为引用参数传递的实参必须是变量,并且在方法执行期间,引用参数与实参变量表示同一存储位置。引用参数使用 ref 修饰符声明。对值类型使用ref修饰符,效果显而易见,对引用类型使用修饰符,区别不大。参数数组允许向方法传递可变数量的实参,参数数组使用 params 修饰符声明,只有方法的最后一个参数才可以是参数数组,并且参数数组的类型必须是一维数组类型。

C# 要求在对局部变量明确赋值 之后才能获取其值。

静态方法只能访问静态成员。

实例方法能够访问静态成员和实例成员。

 

在调用一个虚方法时,该调用所涉及的那个实例的运行时类型 确定了要被调用的究竟是该方法的哪一个实现。在非虚方法调用中,实例的编译时类型是决定性因素。

虚方法可以在派生类中重写 (override),该方法将重写所继承的具有相同签名的虚方法。虚方法声明用于引入新方法,而重写方法声明则用于使现有的继承虚方法专用化(通过提供该方法的新实现)。

抽象 (abstract) 方法是没有实现的虚方法。抽象方法使用 abstract 修饰符进行声明,并且只有在同样被声明为 abstract 的类中才允许出现。抽象方法必须在每个非抽象派生类中重写。

与字段不同,属性不表示存储位置。属性的访问器可以是虚的,允许使用 virtual、abstract 或 override 修饰符。

索引器的声明与属性类似,不同的是该成员的名称是 this,后跟一个位于定界符 [ 和 ] 之间的参数列表。

事件 (event) 是一种使类或对象能够提供通知的成员。事件的声明与字段类似,不同的是事件的声明包含 event 关键字,并且类型必须是委托类型。在声明事件成员的类中,该字段存储对一个委托的引用,该委托表示已添加到该事件的事件处理程序。如果尚未添加事件处理程序,则该字段为 null。

复数、坐标系中的点或字典中的“键-值”对都是结构的典型示例。对小型数据结构而言,使用结构而不使用类会大大节省应用程序分配的内存量。

数组初始化的全写和简写:

int[] a = new int[] {1, 2, 3};

int[] a = {1, 2, 3};推荐

C# 还支持显式接口成员实现,类或结构可以使用它来避免将成员声明为 public。整形和枚举类型之间的转换只要强制转换就可以了。例如:

int i = (int)Color.Blue; // int i = 2;
Color c = (Color)2; // Color c = Color.Blue;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值