[C#] C++与c#语法对比

一、基本语法

cs 复制代码
Console.WriteLine("=== 第一个 C# 程序 ===");

// 1. 变量声明 ------ var 类似 C++ 的 auto
var name = "World";                  // C#: var 自动推断类型;  C++: auto
string city = "深圳";                // 显式类型也行


// 2. 输出 ------ Console.WriteLine 类似 std::cout
Console.WriteLine("你好," + name + "!");        // 字符串拼接,和 C++ 一样
Console.WriteLine($"欢迎来到 {city}!");          // 字符串插值 $"",C++ 没有,很方便


// 3. 输入 ------ Console.ReadLine 类似 std::cin >> 或 getline
Console.Write("请输入你的名字: ");                 // Write 不换行,WriteLine 换行
string input = Console.ReadLine() ?? "";          // ?? "" 防止输入为 null


// 4. 字符串插值 ------ C# 特色,{} 里直接放变量或表达式
Console.WriteLine($"你好,{input},今天是 2026 年!");
Console.WriteLine($"你的名字有 {input.Length} 个字符。");   // .Length 是属性


Console.WriteLine("按任意键退出...");
Console.ReadKey();                               // 等待按键,类似 system("pause")

二、关键语法讲解

1.没有显示main函数?

|------------|------------------------------------------------|
| C++ | C# |
| int main() | 新版(顶级语句)可以直接写代码,编译器自动包进 Main |
| | static void Main() { Console.WriteLine(...); } |
| | 文件中直接语句,就是程序入口 |

2. 变量声明:var = C++ 的 auto
cs 复制代码
auto a = 5;

var a = 5; //c#编译器推断,运行时还是强类型
string a = "Hi";显示写类型
3. 字符串:C++ 用 "abc" / std::string,C# 直接用 string

|----------------------|--------------------|
| C++ | C# |
| std::string s = "Hi" | string s ="Hi" |
| s + "you" 拼接 | "Hi" + "you" 一样 |
| s.length()方法 | s.length 属性 |
| getline(cin,s) | Console.Readline() |

4. 字符串插值 $"..."(C# 特色,C++ 没有)
cpp 复制代码
//c++只能拼接或用printf格式化
cout << "你好," << name << ",今天" << year << "年" << endl;
// 或: printf("你好,%s,今天%d年\n", name, year);


// C# 字符串插值,$ 开头,{} 里直接放变量/表达式
Console.WriteLine($"你好,{name},今天{2026}年!");
Console.WriteLine($"名字长度: {input.Length}");
5. 输入输出对照功能

|-------|--------------------|-----------------------|
| 功能 | C++ | c# |
| 输出换行 | cout<<x<<endl; | Console.WriteLine(x); |
| 输出不换行 | cout<<x; | Console.Write(x); |
| 读一行 | getLine(cin,x) | Console.ReadLine(x); |
| 等按键 | System("pause") | Console.ReadKey(); |

复制代码
// Day01 练习:输入姓名,输出问候
// 对比 C++: #include <iostream> + using namespace std; + int main()

Console.WriteLine("=== 第一个 C# 程序 ===");

// 1. 变量声明 ------ var 类似 C++ 的 auto
var name = "World";              // C#: var 自动推断类型;  C++: auto
string city = "深圳";            // 显式类型也行

// 2. 输出 ------ Console.WriteLine 类似 std::cout
Console.WriteLine("你好," + name + "!");        // 字符串拼接,和 C++ 一样
Console.WriteLine($"欢迎来到 {city}!");          // 字符串插值 $"",C++ 没有,很方便

// 3. 输入 ------ Console.ReadLine 类似 std::cin >> 或 getline
Console.Write("请输入你的名字: ");                 // Write 不换行,WriteLine 换行
string input = Console.ReadLine() ?? "";          // ?? "" 防止输入为 null

// 4. 字符串插值 ------ C# 特色,{} 里直接放变量或表达式
Console.WriteLine($"你好,{input},今天是 2026 年!");
Console.WriteLine($"你的名字有 {input.Length} 个字符。");   // .Length 是属性

Console.WriteLine("按任意键退出...");
Console.ReadKey();                               // 等待按键,类似 system("pause")
相关推荐
萧瑟余晖19 分钟前
Java深入解析篇三十六之分布式系统详解
java·开发语言·分布式
ZJU_统一阿萨姆1 小时前
【推理优化进阶】调度器的数学内核:排队论、SLO 与在线决策
开发语言·人工智能·语言模型·系统架构·vllm
Z5998178411 小时前
c#软件开发学习笔记--Modbus-TCP/UDP网口通讯
笔记·学习·c#
SomeB1oody1 小时前
【RustyML入门】5.2. 分类指标
开发语言·后端·机器学习·rust·教程
ZJU_统一阿萨姆2 小时前
【推理优化进阶】图编译与运行时:动态形状、CUDA Graph 与内存规划
开发语言·人工智能·语言模型·架构·开源
@呱呱爱学习2 小时前
C++大成之路_ STL容器_ Vector
开发语言·c++
码匠许师傅2 小时前
【C++ 面试真题】19. 聊聊 C++ 的迭代器
开发语言·c++·面试
AI情绪识别开源2 小时前
检信ALLEMOTION VibrationAI 2.4.0 12维度情绪识别开源源代码
开发语言·python
Dovis(誓平步青云)2 小时前
DevEco Studio 6.1.1 Windows 安装实录:从下载校验到首次启动
android·开发语言·数据库·人工智能·windows·harmonyos
qeen872 小时前
【数据结构】红黑树的算法原理解析与实现
开发语言·数据结构·c++·算法·红黑树