C# 部分关键字

关键字:

virtual:  虚方法,本身可以被实例化,也可以在派生类中重写该方法;

override:在派生类重写基类虚方法时声明,避免了C++中的潜在运行错误;

abstract:声明为抽象类、抽象方法,不能实例化;

sealed:  不可被继承类、不能被重写方法;

param:   表示函数参数为一维数组,且可以支持特殊写法,如 void myAdd(param int[] xarray); -> void myAdd(1, 2, 3); 值得注意的是匿名函数以param声明参数,重载会出现不识别该函数的问题。

修饰符:

protected:只有本身与派生的类型能够访问;

private:只能在所属类型内能够访问;

internal:只能在包含它的程序集中访问;

接口:

语法声明与抽象类完全相同,但不允许提供接口中任何成员的实现;

定义接口时不允许包含重载运算符;

一般用 Ixxx(); 定义;

接口继承:

  类继承接口:必须实例化所有成员与方法;

  接口继承接口:新接口会拥有原接口的所有成员与自己的新成员;

Interface 与 Abstract 的区别:

  借用一张java的区别,与C#有差别,但主体概念上差不多。

C# 部分关键字

  借用以上总结,C# 主要的差别在于:

1. 类不能多重继承,接口可以多重继承;

2. 类的成员可公有可私有,接口则都是公有;

is 与 as 操作符:

is:检查一个对象是否兼容于指定类型,并返回一个 Boolean 值;

as: 进行强制类型转换,能转换则返回实例,不能则返回 null;将  if(obj is ClassA){ Class A = (ClassA)obj; } 合并为了同一句:ClassA A = obj as ClassA;

C#5.0 异步关键字:

await:异步操作符,调用异步方法时使用,会启动一个新线程去执行;

async:异步方法声明符,被该符号生命的方法,调用时需要使用 await 操作符,没有 await 的话将会被同步执行;

c ? x:y - c 条件成立,则返回x,否则返回y

x??y - 当 x 为 null 时返回 y,否则返回x

上一篇:Pexels Videos – 可以免费商业使用的短视频


下一篇:jq事件绑定