C# 主要包括五大类内置的基础类型,整型,浮点型,Bool 类型,字符型,引用类型,其中每一种类型下有的又包含各种子类型;
1、整型 C#中的整型又包括四种子类型,所能表示的整数范围也各不相同;
(1) byte 8位 默认无符号 有无符号表示 sbyte;
(2) short 16位 默认有符号 无符号表示 ushort;
(3) int 32位 默认有符号 无符号表示 uint;
(4) long 64 位 默认有符号 无符号表示 ulong;
2、浮点型 C#中又三种精度的浮点数 日常开发中常用的只有两种
(1)float 单精度浮点型 32位;
(2)double 双精度浮点型 64位 代码中对浮点数硬编码时默认存储为双精度浮点数 如 var d = 0.5, d 类型为 double ,float 表示 0.5f;
(3) decimal 超高精度浮点数 128位 通常用于财务计算;(在一次面试中曾被考过 decimal 的位数);
3、bool 类型 和其他编程语言一样 bool 只包含两种值 true or false;
4、字符型 char 16位 用单引号包围 'c' 支持转义字符和16进制表示方式 ,但是和C语言不同 char 类型无法隐式转换成整型;
5、引用类型,C#是面向对象的编程语言,主要包含两种内置的引用类型;
(1) 万类之根本 object C#中所有内置的包括自定义的类都默认继承此类,object 中包含许多所有类通用的方法,如tostring() 等,也可以在子类中重写这些方法;
(2) string 字符串类型 用双引号包围的一串字符,“string” 字符串是引用类型也就是说 使用字符串时系统会在托管堆中开辟内存,而不是在运行时堆栈中;
PS : 日常开发中遇到的和基础数据类型相关的优化:
由于字符串类型的在日常开发中比较常用所以在使用时要非常注意,避免不必要的堆内存消耗,在进行大量字符串的拼接或者其他操作时最好使用StringBuider;在优化代码时经常会看到由于大量的字符串拼接而产生较高的GC,而且大部分情况都是可以通过人为的方式避免;这一点在开发过程中要时刻谨记;