1.每个类成员必须制定访问级别。否则默认为private。
2.对象从来都不是在堆栈中创建的,而是在一块特殊的内存中创建。垃圾回收器会自动回收不再使用的资源。
3.抽象类:是不完整的并且不能直接实例化。abstract class Animal{...}。抽象类中定义的为实现的方法也可以用abstract。
4.密封类:不可作为基类。sealed class Horse。sealed也可以修饰方法。
5.this:访问当前对象。base:访问最近的基类成员。base只在类的内部有效。
6.ojbect基类:所有类型都是从object基类派生出来的。class cat 等同于 class cat : object
7.接口:接口不包含任何成员变量,只定义了一些子类必须实现的方法。接口不能被实例化。
interface ISpeak
{
void a();
int b();
}
class bbb: ISpeak
{
public void a(){}
public void b(){}
}
从接口继承来的类如果不是抽象的,必须实现接口的全部方法。如果有想推迟的方法,可以定义成抽象方法。
C#不支持多重继承,但可以实现多个接口。
8.catch子句捕捉到异常后,可以恢复异常,或者重新引发异常。如是重新引发,异常会一直往外抛,直到从调用队列找到合适的catch处理。
9.强制类型转换:必须用try...catch。或者用as来尝试转换,如不成功返回null。
10.结构
结构不能被继承。结构可以实现接口,但不能继承其他类或结构。
结构从堆栈中分配内存。结构参数以副本形式传值。
结构也可以有成员函数。成员默认private。
可以有构造函数,不能有析构函数。
11.枚举
enum Color{red,Yellow,Green}。
枚举项默认是int型,但也可改变为任何标量类型。
enum Color : byte
{
Red=1,Yellow,Green
}