这是我在看完C#以后总结的一章图,C#给我的感觉就是与C++基本一样,主要就是一些面向对象的东西,如:封装、继承、多态等等。
以下几点是我整理的一些笔记。
1、结构与类的区别
类:
(1)类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存
(2)类有构造和析构函数
(3)类可以继承和被继承
结构:
(1)结构是值类型在栈上分配(虽然栈的访问速度比较堆要快,但栈的资源有限放),结构的赋值将分配产生一个新的对象。
(2)结构没有构造函数,但可以添加。结构没有析构函数
(3)结构不可以继承自另一个结构或被继承,但和类一样可以继承自接口
2、传值与传址的区别
传值:是把实参的值“拷贝”给形参,运算中是对形参进行操作,实参的值在运算中不会发生变化
传址(引用):是把实参的地址传给形参,运算中是对实参进行操作,会改变实参的值
3、访问控制符
| 可访问性 |
Private | 都不行 |
Public | 都行 |
Protected | 继承的才能访问 |
internal | 同一程序集中才能访问 |
Protected internal | 继承的和同一程序集中的都能访问 |
如图,i(private)都不能访问;j(internal)只能被类B、C(在同一程序集中)访问;k(public)可以被所有的访问;l(protected)只能被类C、D(派生类 )访问;m(protected intermal)只能被B、C、D(
继承的和同一程序集中)的访问。