C# 从零开始 vol.1

说好的java只能先坑了,毕竟计划赶不上变化,以下是 c# 基础部分。 1:变量,方法的命名方式  目的就是一眼看到实例名 方法名 就知道该变量是做什么的。  主流的命名方式有驼峰命名规则,pascal命名规则,以及匈牙利命名规则。先看案例 :  var NewCamel = new Camel(); //pascal命名规则  var  newCamel = new Camel();//驼峰命名规则  var CnewCamel = new Camel();//匈牙利命名规则  其中区别就是  pascal 命名需要每个单词首字母大写,而驼峰命名则是 第一个单词首字母小写,之后的单词首字母大写。  匈牙利命名规则比较特殊,首字母表示了实例的类型。  通常c#的命名规则使用 驼峰命名规则,但是接口则使用了匈牙利命名规则(接口的命名通常以 I 作为开头)。  字段 则开头使用下划线 。 2:进程  一个应用程序 拥有一个进程,一个进程是由多个线程组成的,进程在内存中分配程序执行所需要的空间,可以操作进程来操作应用程序。 3:面向对象  面向对象主要的优势:封装,继承,多态。  封装:封装复杂性,一段代码到处复制是肯定不可以的,工具等方法 一般都是封装成 静态类,会操作共有资源的需要加锁。  继承:一个功能可能有许多实现方式,比如从本地硬盘读取一首歌,从网络读取一首歌等,这样就可以创建一个接口,这个接口有一个Read(); 方法,读取本地硬盘的方法实现这个接口,读取网络的方法也实现这个接口,这样就能在需要的时候根据不同的方法来调用这个接口,创建实例,同时AOP 能让这项优势扩大(动态代理,持久化实例等)。    特性:      单根性:只能继承一个类。      传递性:父类也可以继承其他类。      里氏转换:子类赋值给父类,(协变和逆变)如果父类引用的是子类对象,则可以将这个父类转换成对应的子类。      is 和 as 关键字:is  的用法: 
var int32 = new Int32(100);
if(int32 is Int32){
//do something
}else{
//do else something
}
as 的用法:
var asResult = int32 as Int32;
if(asResult!=null){
//do something
}else{
//do else something
}
  多态:    虚方法:用 关键字 virtual 装饰方法名,表示可以重写,子类中 使用override 重写标记了 virtual 的方法。    抽象类:abstract 类 中可以包含非抽象的方法,但非抽象类不能包含抽象方法。 4:new this base:  new 创建对象:    在堆中开辟空间。    在开辟的空间中创建对象。    调用对象的构造函数。  this :    代表当前对象(构造函数)。      base :代表父类对象(构造函数)。5:访问修饰符:  public :任何地方都能访问。  private:只能在当前类的内部访问。  internal :只能在当前程序集中访问。  protected:只能在当前类和该类的子类中访问。    其中public internal 可以修饰类,其他只能修饰变量。    类的默认修饰符是 internal。    子类的访问权限不能高于父类(只能相等或小于)。 

相关内容推荐