.NET学习之面向对象总结

1、命名规范
  Camel骆驼命名规范:变量、字段(类成员变量)  int age;int _chinese(字段)
  Pascal:类或者方法 GetMax  GetSum 

2、封装、继承、多态
  ***字段:存储数据,访问修饰符应该设置为private
  ***属性:保护字段,对字段的取值和赋值进行限定。
  ***this关键字:1)代表当前类的对象  2)调用自己的构造函数
  ***return:1)立即结束本次方法  2)在方法中返回要返回的值

3、继承
  1)单根性  2)传递性

4、里氏转换
  1)子类可以赋值给父类
  2)如果父类中装的是子类对象,那么可以将这个父类转换为子类对象。
    as(对应的对象/null)   is(true/false)

5、值类型:结构体(数值类型,bool类型)、枚举类型、可空类型
   引用类型:数组,用户定义的类、接口、委托,object,字符串
   装箱:就是将值类型转换为引用类型
   拆箱:就是将引用类型转换为值类型。  
   拆箱或者装箱的两种类型必须具有继承关系

6、new
   1)创建对象
   2)隐藏从父类继承过来的成员

7、interface接口
   1)表示一种能力,可以实现多态,,父类在前,接口在后
   2)接口中成员不能有任何的修饰符,默认为public
   3)接口中只能包括方法(属性、事件、索引器)

8、自动属性
   自动属性是不对字段进行逻辑验证的操作

9、字符串
   1)不可变性
   2)字符串可以看做是char类型的只读数组
    string.IsNullOrEmpty(st1): true/false 判断是""或null
    s.ToCharArray  转成字符数组(可写了),再new string(chs)
    s.Substring()  截取某段字符串
    s.Split(new Char[{',','/'},StringSplitOptions.Rem..)
    s.Join("|",数组);
    3)null没有分配空间,不是对象(==)
       ""分配了空间,已经实例化(equals)

10、StringBuilder
    1)当大量进行字符串操作的时候,比如,很多次的字符串的拼接操作
    2)StringBuilder仅仅是拼接字符串的工具,大多数情况下还需要把StringBuilder转换为String.

11、集合
    ArrayList
    Hashtable
    List<T>
    Dictionary<TKey,TValue>

12、Person p1=new Person();
    p1.Name="张三";
    Person p2=p1;
    p2.Name="李四";   //最后p1,p2都是李四,p1p2都指向堆中同个地方

13、显式转换
    1)(int)变量名,数字类型long->int
    2)int.Parse(string类型),
    3)int.TryParse(string s,out int result),
    4)Convert.Toint32(),还可将其他类型转换成int,同强制转换一样,不能用来处理char类型,否则传回的是ASCII代码。

Object => 已知引用类型 ,使用as操作符来完成
Object => 已知值类型,先使用is操作符来进行判断,再用类型强转方式进行转换

14、结构和类
   1)类当中写了一个新的构造函数之后,默认的无参数的就被干掉了。但是在结构中,写了一个新的构造函数之后,默认的那个无参数的还在。
在结构的构造函数当中,必须给所有的字段赋值。
只能有两个构造函数,一个是默认的无参数的构造函数,一个是全参数的构造函数。
   2)结构的new关键字只干了一件事儿,就是调用结构的构造函数,在栈中开空间。
   3)如果不给结构创建对象的话,不允许调用结构中的非静态方法。

   4)Convert.Toint32(),还可将其他类型转换成int,同强制转换一样,不能用来处理char类型,否则传回的是ASCII代码。
    

     Object => 已知引用类型 ,使用as操作符来完成
     Object => 已知值类型,先使用is操作符来进行判断,再用类型强转方式进行转换
15、结构和类
   1)类当中写了一个新的构造函数之后,默认的无参数的就被干掉了。但是在结构中,写了一个新的构造函数之后,默认的那个无参数的还在。
在结构的构造函数当中,必须给所有的字段赋值。
只能有两个构造函数,一个是默认的无参数的构造函数,一个是全参数的构造函数。
   2)结构的new关键字只干了一件事儿,就是调用结构的构造函数,在栈中开空间。
   3)如果不给结构创建对象的话,不允许调用结构中的非静态方法。
16、File读数据都是一次性读进去,对内存消耗比较严重
        Directory操作目录的
    1)GetFiles获取指定文件夹下文件的全路径
         FileStream操作字节的
         StreamReader操作字符的
17、序列化和反序列化
    //要将序列化对象的类 标记为可以被序列化的,序列化成二进制
    1)[Serializeble],Binarymatter的Serialize
    2)Deserialize反序列化


















 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值