C#基础知识

C#基础知识

## C#的数据结构

值类型:
整形:int32 ,short, long ,byte,无符号整形
浮点型:float,double,deceimal
字符:char
bool
枚举
结构体(简化类)

引用类型
string
class
接口,抽象类
集合类

值类型和应用类型的区别:
值类型存储在内存栈中,存储的是具体的数据,读取速度快,内存自动释放。值类型继承自system.ValueType.
引用类型存储在内存堆中,存储的是指向内存堆中数据的指针和引用。读取速度慢,内存由.net GC释放,继承自system.Object

面向对象三大特征
封装:将属性和行为相结合,通过行为来约束属性,增加数据的安全性(属性是C#封装的最好体现)
继承:提高代码的重用性,增强软件的可维护性的重要手段,符合开闭原则。
多态:重载和重写了=,= 同名方法在不同环境下,自适应不同的表现。

List和ArrayList区别
ArrayList不带泛型,数据类型丢失
List带泛型,数据类型不丢失
ArrayList需要装箱拆箱 ,List不需要

4种访问修饰符的区别
public: 对任何类都公开
private: 只对本类公开
protected:对该类及派生类公开
internal:只能在程序集内部访问

ref和out的区别
ref表示传递引用,参数必须初始化,一把用于修改全局变量
out 出差,参数不用初始化,一般由函数初始化并赋值

Abstract (抽象)

抽象类 1.不允许实例化,2.可以定义抽象方法
抽象方法 1.必须重写 2.抽象类中没有方法体,不能实现。
Virtual 虚函数 1.子类可以重写 ,可不重写 2.需要有方法体
子类重写加Override
单继承

Interface(接口)

1…不是类,一般用于约束行为
2.不能实例化 方法不能实现,不需要修饰符
2.可以多继承
3.继承接口之后必须实现,而且不属于重写,只是约束,可以加Virtual

重载和重写

重写在父子类中,父类是Virtual或者Override 子类必须加Override
方法名和参数必须相同 运行时多态
重载在同一类中 方法名相同但是参数列表不同 编译时多态

结构体和类的区别

结构体是值类型,类是引用类型
结构体可以声明字段 但是不可以有初始值
结构体已经有一个隐式的无参构造,不能手动添加

接口和委托的区别

接口:是约束类具有的功能合集,约束了接口应该具有的功能,使类从千变万化的逻辑中抽离出来,便于类的管理和拓展。同时也结局了单继承的问题。常用于多人合作和无法继承 完全抽象的情况下

委托:是约束了方法合集的一个类,可以便捷的使用委托对这个方法合集操作,常用于事件的处理中

接口和抽象类区别

接口不是类,不可以实例化 可以多继承
抽象类可以间接实例化 单继承
接口定义的函数 不可以实现 是完全抽象 ,抽象是部分抽象

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值