### C#从入门到精通 学习笔记
#### 基础数据类型
在C#中,基础数据类型包括整型、浮点型、字符型等。这些类型为程序提供了基本的数据存储功能。
- **整型**: 包括`sbyte`(8位有符号整数)、`short`(16位有符号整数)、`int`(32位有符号整数)、`long`(64位有符号整数)以及它们对应的无符号类型`byte`、`ushort`、`uint`、`ulong`。
- **浮点型**: 包括`float`(单精度浮点数,大约7位有效数字)、`double`(双精度浮点数,大约16位有效数字)。
- **字符型**: `char`类型用于存储单个Unicode字符,占用2个字节。
#### 枚举类型
枚举类型是一种值类型,它由一组命名的常量组成,这些常量的值是整数。例如:
```csharp
enum WeekDay { Sun = 0, Mon = 1, Tue = 2, Wed = 3, Thu = 4, Fri = 5, Sat = 6 }
```
在这个例子中,`WeekDay`是一个枚举类型,定义了从周日到周六的一系列常量。
#### 类型转换与检查
- **`is`关键字**: 可以用来检查一个变量是否为指定类型,例如:
```csharp
bool result = variable is int;
```
- **`typeof`操作符**: 用于获取类型的类型对象,例如:
```csharp
Type myType = typeof(int);
```
#### 字符类型的操作
C#提供了丰富的字符操作方法,这些方法可以帮助我们处理字符相关的任务,例如:
- **`IsControl`**: 检查一个字符是否是控制字符。
- **`IsDigit`**: 检查一个字符是否是数字。
- **`IsLetter`**: 检查一个字符是否是字母。
- **`IsLower`**: 检查一个字符是否是小写字母。
- **`IsUpper`**: 检查一个字符是否是大写字母。
- **`IsWhiteSpace`**: 检查一个字符是否是空白字符。
- **`Parse`**: 将字符串解析成指定类型的值。
- **`ToLower`/`ToUpper`**: 将字符转换为小写或大写。
- **`ToLowerInvariant`/`ToUpperInvariant`**: 使用不变文化规则进行大小写转换。
- **`ToString`**: 将对象转换为字符串。
- **`TryParse`**: 尝试将字符串解析为指定类型的值,并返回成功与否的结果。
#### 字符串操作
C#中的字符串是不可变的,但提供了丰富的字符串操作方法,例如:
- **`Substring`**: 获取字符串的一部分。
- **`Split`**: 根据分隔符将字符串分割成字符串数组。
- **`Insert`**: 在指定位置插入字符串。
- **`PadLeft`**: 在字符串左侧填充指定字符。
- **`Remove`**: 删除字符串的一部分。
- **`Copy`**: 复制字符串。
- **`Compare`**: 比较两个字符串。
- **`Equals`**: 检查两个字符串是否相等。
- **`Replace`**: 替换字符串中的子字符串。
- **`Format`**: 格式化字符串。
#### 字符串格式化
C#提供了多种字符串格式化的方法,例如:
- **日期时间格式化**:
- `d`: 年月日格式,如“2023-09-01”。
- `D`: 年月日格式,如“20230901”。
- `t`: 时间格式,如“13:45”。
- `T`: 时间格式,如“13:45:56”。
- `f`: 年月日时间格式,如“2023090113:45”。
- `F`: 年月日时间格式,如“2023090113:45:56”。
- `g`: 简化的年月日时间格式,如“2023-09-0113:45”。
- `G`: 完整的年月日时间格式,如“2023-09-0113:45:56”。
#### 数组和集合
- **数组**:
- `type[] arrayName;`: 一维数组。
- `type[,] arrayName;`: 二维数组。
- **集合**:
- `ArrayList`: 动态数组,可以存储任意类型的元素,提供了动态扩展的能力。
- `Capacity`: 获取当前数组列表的实际容量。
- `Count`: 获取当前数组列表中元素的数量。
- `IsFixedSize`: 表示数组列表是否具有固定的大小。
- `IsReadOnly`: 表示数组列表是否只读。
- `IsSynchronized`: 表示数组列表是否支持同步。
- `Item`: 获取或设置指定索引处的元素。
通过以上内容,我们可以看到C#作为一种强大的面向对象编程语言,不仅提供了丰富的基础数据类型,还提供了灵活多样的类型转换、字符串处理和集合管理等功能,使得开发者能够更加高效地进行软件开发。掌握这些基础知识对于学习C#来说是非常重要的一步。