.Net【基础回顾】函数
构造函数
方法名与类名相同
没有返回值类型
必须要通过new的形式调用
可以重载
静态构造函数
静态构造函数用于初始化任何静态数据,或执行仅需执行一次的特定操作。 将在创建第一个实例或引用任何静态成员之前自动调用静态构造函数。
析构函数
用于在类销毁之前释放类实例所使用的托管和非托管资源
一般GC隐式地执行内存释放
若创建封装了非托管资源的对象,在应用程序使用完这些非托管资源之后,垃圾回收站将运行对象的析构函数(即Finalize方法)来释放这些资源
class Person
{
~Person()
{
Console.WriteLine("析构函数被调用了");
}
}
使用析构函数注意
不能在结构体中定义析构函数,只能对类使用析构函数;
一个类只能有一个析构函数;
无法继承或重载析构函数;
无法显式地调用析构函数,析构函数是有垃圾回收器自动调用的;
析构函数既没有修饰符也没有参数。
匿名函数
有两种语法风格:Lambda表达式(lambda-expression)和匿名方法表达式(anonymous-method-expression)
x => x + 1 //隐式的类型化,函数体为表达式
x => {return x + 1;} //隐式的类型化,函数体为代码块
(int x) => x + 1 //显式的类型化,函数体为表达式
(int x) => {return x + 1;} //显式的类型化,函数体为代码块
(x , y) => x * y //多参数
() => Console.WriteLine() //无参数
async (t1 , t2) => await t1 + await t2 //异步
delegate (int x) {return x + 1;} //匿名函数方法表达式
delegate {return 1 + 1;} //参数列表省略
抽象/abstract函数
class中定义但不实现
虚/virtual函数
定义且实现,子类可以重写也可以不重写