求知若饥,虚心若愚
预定义类型
自行查阅对应的位数及范围,浮点数还需要关注有效位数
- sbyte
- byte
- ushort
- short
- uint
- int
- ulong
- long
- float
- double
- decimal
- char
- string
- boolean
值类型和引用类型
区别在于内存拷贝方式
- 预定义类型除了string都是值类型
- 值类型,方法传递、赋值都会产生内存拷贝,尽量避免定义大内存的值类型
- 每个引用通常都是系统的原生大小
可空修饰符
- ?,将null赋予值类型
- 使用var推导,最终的CIL代码没有差别,但如果确定类型的话尽量写出来,除非所赋值类型显而易见。
元组
1 | (string a, int b) = ("temp", 1); |
命名规范:元组变量名毫无疑问要用camelCase大小写规范,元组项建议用PascalCase大小写风格来和C#成员标识符的大小写规范一致。
值类型版本(结构体),ValueTuple,支持七个以上元素,虽然底层依旧是嵌套,
普通元组为引用类型(类)