**string*、*object**和**struct**
一、string 字符串(通俗详解)
## 1. 基本用途
专门用来存放**文字内容**,比如名字、手机号、一段话、文件路径等。
数字、符号只要放在引号里,都会被当成纯文本,不能直接做加减乘除运算。
、、、csharp
using System;
class Program
{
static void Main()
{
string name = "张三";
string msg = "今天天气很好";
Console.WriteLine(name);
Console.WriteLine(msg);
Console.ReadKey();
}
}
运行结果
张三
今天天气很好
## 2. 转义字符(特殊功能符号)
字符串里单个 `\` 是**转义符**,用来实现格式效果:
- `\n`:换行,相当于敲回车
- `\t`:制表符,相当于按 Tab 键,空出一段间距
- `\\`:想**原样输出一个反斜杠**,必须写两个 `\`(单个 `\` 会被当成指令)
、、、csharp
using System;
class Program
{
static void Main()
{
// \n 换行
Console.WriteLine("第一行\n第二行");
// \t 制表空格
Console.WriteLine("姓名\t年龄");
// \\ 输出单个反斜杠
Console.WriteLine("路径:C:\\Users");
Console.ReadKey();
}
}
运行结果
第一行
第二行
姓名 年龄
路径:C:\Users
## 3. 两个常用前缀符号
### (1)@ 逐字字符串
作用:**取消所有转义功能,内容原样输出**。
适合写文件路径、带大量 `\` 的文本,不用反复写 `\\`。
、、、csharp
using System;
class Program
{
static void Main()
{
string path = @"C:\Users\Desktop";
Console.WriteLine(path);
Console.ReadKey();
}
}
运行结果
C:\Users\Desktop
### (2)$ 字符串插值
作用:**直接把变量嵌入字符串**,告别繁琐的 `+` 拼接,写法简洁易读。
语法:字符串前加 `$`,变量放在 `{ }` 内部。
、、、csharp
using System;
class Program
{
static void Main()
{
string name = "李四";
int age = 20;
Console.WriteLine($"姓名:{name},年龄:{age}");
Console.ReadKey();
}
}
运行结果
姓名:李四,年龄:20
# 二、object 类型(通俗详解)
## 1. 核心定位
`object` 是 C# 里**所有数据类型的父类**,堪称**万能收纳盒**。
不管是整数、小数、文字、布尔值,还是自定义对象,全都可以存进 `object` 变量里。
## 2. 使用特点
1. 包容性极强:任何类型数据都能直接赋值给 `object`;
2. 本质:值类型存入 `object` 会发生**装箱**,取出使用时需要**拆箱**;
3. 适用场景:不确定数据类型、需要统一存放多种不同数据时使用。
、、、csharp
using System;
class Program
{
static void Main()
{
object a = 100; // 存整数
object b = "测试"; // 存字符串
object c = true; // 存布尔值
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.ReadKey();
}
}
运行结果
100
测试
True
# 三、struct 结构体(通俗详解)
## 1. 核心定位
结构体是**自己定制的复合型容器**,专门用来把**多个关联零散数据打包成一个整体**。
举个生活例子:
描述一个人,需要姓名、年龄、身高;描述一本书,需要书名、价格、作者。
如果单独定义一堆零散变量,管理很乱,这时就可以用结构体,把一套相关数据封装在一起。
## 2. 使用流程
1. 先**定义结构体**:规定这个“盒子”里要存放哪些数据;
2. 再**创建结构体变量**:使用自定义的结构体,给内部数据赋值、读取。
、、、csharp
using System;
// 定义结构体:打包学生信息
struct Student
{
public string Name; // 姓名
public int Age; // 年龄
public string Class; // 班级
}
class Program
{
static void Main()
{
// 创建结构体实例
Student stu1;
stu1.Name = "小明";
stu1.Age = 18;
stu1.Class = "一班";
// 读取并输出
Console.WriteLine($"姓名:{stu1.Name},年龄:{stu1.Age},班级:{stu1.Class}");
Console.ReadKey();
}
}
运行结果
姓名:小明,年龄:18,班级:一班
## 4. 总结特点
- 属于**值类型**,数据独立;
- 用来整合一组逻辑相关的数据,让代码更规整;
- 适合描述简单实体(学生、商品、坐标等)。
---
# 整体速记(背诵版)
1. **string**:存文字;`\n`换行、`\t`空格;`@`原样输出,`$`嵌入变量。
2. **object**:所有类型的基类,万能容器,可存放任意数据。
3. **struct**:自定义数据盒子,把多个关联数据打包统一管理。
