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# 主要的差别在于:
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
最新文章
- 响应式手机商城页面顶部样式HTML代码
- linux top 源码分析
- MBProgressHud添加自定义动画
- Sql Server来龙去脉系列之二 框架和配置
- nginx 的启动脚本
- 在.net Core 中像以前那样的使用HttpContext.Current
- Google邮箱:Gmail国际顶级邮箱
- PHP第一课笔记
- python2.7_1.4_将IPV4地址转换成不同的格式
- 过实现鹰眼图这个功能来进一步学习MapControl控件
- 【转】jqGrid学习之参数
- 你知道自己执行的是哪个jre吗?
- springmvc基础学习2---简单配置文件
- 网站转变风格的css变化
- SpringMVC 教程 - URI 链接
- VMProtect1.63分析
- *****hibernate主键生成
- LoadRunner录制脚本-基础
- 机器学习---笔记----numpy和math包中的常用函数
- linux终端发送邮件
热门文章
- hdoj 4552 怪盗基德的挑战书【求前缀在字符串中出现的次数之和】
- SVN强制注释
- JSP简易留言板
- Java学习的随笔(2)Java语言的三大特性
- Facebook 开源安卓版 React Native,开发者可将相同代码用于网页和 iOS 应用开发
- 使用Dreamwaver cc中的SVN功能,用于传输BAE和SAE中的文件
- iOS 如何优雅的处理“回调地狱Callback hell”(一) (下)
- checkbox 全选/取消
- __name__属性
- CSS基本知识介绍