继承

字段,方法,属性,索引器等
子类可以添加,隐藏,删除父类成员。

同名方法

Overloading
new
Override:虚方法覆盖重写

调用父类

base.sayHello
:base(a,b)

父子转换

as 只能针对引用类型,不能转换 Null
is 判断对象是不是某个类及子类的实例

访问控制符

public | private | internal | protected

static

字段,属性,方法属于整个类,直接用类名访问
变量可以表示全局变量

const

常量,只能基本类型和string,例如:Math.PI

readonly

不可改量,只能赋值一次,例如:String.Empty
只能修饰字段

sealed

不可继承

abstract

不可实例化

接口 interface

抽象成员的集合,是一种约定,一个引用类型,比抽象类更抽象,可以实现多继承
不相关类的相同行为,了解对象的交互界面

结构 struct

值类型
不能包含无参数构造方法
字段不能有初始值
构造方法中,必须给字段赋值
sealed修饰,不能被集成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct Point
{
public double x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public double R(){
return Math.Sqrt(x*x+y*y);
}
}

class Test
{
static void Main() {
Point[] points = new Point[100];
for (int i = 0; i < 100; i++)
points[i] = new Point(i, i*i);
}
}

枚举 enum

符号化的常量,常定义类别等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
enum LightColor 
{
Red,
Yellow,
Green
}
class TrafficLight
{
public static void WhatInfo(LightColor color) {
switch(color) {
case LightColor.Red:
Console.WriteLine( "Stop!" );
break;
case LightColor.Yellow:
Console.WriteLine( "Warning!" );
break;
case LightColor.Green:
Console.WriteLine( "Go!" );
break;
default:
break;
}
}
}