本来这篇博客我是没打算写的,不是不想写,是不知道该怎么来写
整个C#学习下来,真正留下来的笔记也没有多少,只是星星点点撒在了OneNote的角落。
而有时我也不知道为什么要留下他们做客。
一、类&结构
结构是值类型,在栈中分配空间存储数据,在调用时直接取值
类是引用类型,在堆中分配空间存储数据,在调用时取的是栈中的址。
类通常用于对较复杂的行为建模,或对要在创建类和对象后进行修改的数据建模;
结构最适合一些小型数据结构,这些数据结构包含的数据以创建结构后不修改的数据为主
所以咱们主要熟练掌握类的使用,结构作为了解即可。哈哈,毕竟都是大项目
结构和类的异同
结构 类
数据类型 值类型 引用类型
是否可声明无参数的构造函数 否 是
数据成员可否在声明的同时初始化 声明为const或者static可以数据成员不可以 可以
是否可以从类派生 否 是
是否可以实现接口 是 是
是否可以定义私有的无参构造函数 否 是
是否总有一个默认的无参构造函数 是 否
二、访问修饰符
Public
此程序,或者引用此程序的其他程序均可访问该类型或成员
Private
只有同一个类或者结构中可以访问该类型或成员
Protected
只有同一类或者结构,或者类的派生类中可以访问该类型或成员
Internal
此程序内均可访问该类型或成员,其他程序不可访问
类(成员)和结构(成员)的可访问性
直接在命名空间中声明的类和结构可以是公共类和结构,也可以是内部类和结构。默认为Internal。
类成员可以使用五种访问修饰符(有一种上面没有写,因为我不太理解,不能误导大家)的任何一种来修饰类成员;结构成员无法声明为Protected,因为结构不支持继承(上面结构&类中也提到了)。
类成员和结构成员的默认访问级别为Private。
派生类的访问级别不能高于基类的访问级别。
三、静态类
静态类和非静态类基本相同,只是静态类不能实例化,也就不能通过new关键字来创建类的对象及变量,所以只能通过类名本身访问类的静态成员,即敲代码是‘点’出来的东西,也就可以简单的看做是这些方法的一个容器。
对于静态类和成员,我能理解的只能到这个程度了,有了对后续知识的理解,会及时总结的。。。
敬请期待....