可以用VSTool 等工具 对Application文件进行反编译查看汇编指令。
标识符
取得名字都是标识符,如果和关键字冲突,加一个@能使用关键字同名来命名使用;
封装关键字
- public:所有对象都可以访问;
- private:对象本身在对象内部可以访问;
- protected:只有该类对象及其子类对象可以访问;
- internal:同一个程序集的对象可以访问,默认值;
- protected internal:访问限于当前程序集或派生自包含类的类型。
多态关键字
virtual,override,new
override重写 virtual的方法
new关键字只是隐藏,如果你使用父类变量去调用隐藏的父类成员依然可以调用到;
而override关键字则是完全使用子类的方法替代父类的方法,使用了父类的变量仍然会访问子类的方法。类型(转换)关键字
is 和 as
is 用来判断一个对象是不是哪个类的实例。
as 类型转换 A as B A转换成Bvar 和 dynamic
1、声明的变量
关键字var是在C#3.0中引入的,声明的变量是静态类型的,变量的类型由编译器在编译时决定。
关键字dynamic是在C#4.0中引入的,声明的变量是动态类型的,变量的类型由编译器在运行时决定。
2、初始化
关键字var声明的变量应在声明时初始化,这样编译器就会根据初始化的值来决定变量的类型。如果变量未初始化,则抛出错误。
关键字dynamic声明的变量在声明时不需要初始化此类型的变量,因为编译器在编译时不知道变量的类型。如果变量未初始化,也不会抛出错误。
3、intelliSense的支持
关键字var支持visual studio中的intelliSense。关键字dynamic不支持visual studio中的intelliSense
4、应用
关键字var不能用于属性或从函数返回值。它只能用作函数中的局部变量
关键字dynamic可以用于属性或从函数返回值。
C#中的var 和 JavaScript的var 不是一个东西,C#中对应的关键字是dynamic关键字。泛型关键字
T 表类型
where(泛型类型约束)
用法:在泛型类型定义中,where子句用于指定对下列类型的约束,这些类型可用作泛型声明中定义的类型参数的实参。
实例:public class MyClasswhere T:IComparable{}