当前位置: 首页 > news >正文

**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**:自定义数据盒子,把多个关联数据打包统一管理。

http://www.jsqmd.com/news/933342/

相关文章:

  • geth常用命令
  • 告别手动画圈!用Perl脚本自动化统计MS动力学模拟中的氢键变化
  • Python Web开发实战:从零到精通的15章完整指南
  • 【会议征稿通知 | 北京航空航天大学主办 | IEEE出版 | EI 、Scopus稳定检索】第六届智能通信与计算国际学术会议(ICICC 2026)
  • 别再纠结选哪个了!用鸢尾花数据集手把手对比XGBoost、LightGBM和CatBoost(附Python代码)
  • 【无标题】HELLO WORLD
  • 别再到处找安装包了!2024年JDK 8/17/21最新版(含401补丁)一键下载与环境变量配置保姆级教程
  • 别再羡慕别人的丝滑慢动作了!手把手教你用Super SloMo给视频补帧(附Python代码)
  • LeetCode--Median of Two Sorted Arrays
  • Halcon实战:用edges_sub_pix和fit_circle_contour_xld搞定金属零件圆孔尺寸测量
  • 人机协作新范式:2026年最值得入手的专业AI论文工具
  • 【独家内测实录】Sora 2面部表情生成API调用失败率下降92.7%的7个隐藏配置项(附GitHub验证脚本)
  • 生产级 RAG 不是搜几个 chunk:从召回到引用的一条可信链
  • 手把手解读ACPI表:用Linux命令‘窥探’你电脑的电源管理蓝图
  • LeetCode--Merge k Sorted Lists--分治策略
  • 好用还专业!2026年最流行一键生成论文工具榜单,AI工具一键写高质论文
  • 从Fire Module到移动端部署:手把手教你用PyTorch复现SqueezeNet 1.1(附完整代码)
  • 如何用现代化Rust工具彻底改变Total War模组开发:终极指南
  • 用C# WinForm给汇川H3U PLC做个上位机:从API引用到读写数据的完整流程
  • 观察者模式实战——从消息订阅看一对多通知
  • Longest Valid Parentheses(动态规划)
  • OrCAD端口转换补丁实测:一键切换Port与Off-Page Connector,附详细安装避坑指南
  • STM32F030C8T6直接可用的W25Q128 SPI Flash驱动工程(Keil MDK-ARM v5,含.hex和完整CubeMX项目)
  • 2026年亲测AI论文写作软件榜单(安全合规版)
  • Sora 2配音与Premiere Pro/FCPX/Davinci Resolve无缝协同指南,附官方未文档化的Timecode Injection协议
  • 2026年近期想找温州老爹鞋直销厂商?这五家实力供应商值得关注 - 2026年企业资讯
  • LeetCode--Search a 2D Matrix II(分治策略)
  • 从漆包线到发光盆景:手工焊接1206贴片LED的电子艺术实践
  • 基于Arduino与NeoPixel的智能光剑制作:从电路设计到3D打印全流程
  • 如何快速掌握Illustrator脚本:提升设计效率的完整实战指南