目录
前言:为什么选择C#作为你的第一门编程语言?
C#(读作C Sharp)是由微软开发的现代编程语言,凭借其简洁的语法、强大的功能和广泛的应用场景(游戏开发、桌面应用、Web服务、VR/AR等),成为最适合新手入门的编程语言之一。本教程将带你从零基础到掌握C#核心语法,通过生动案例和逐步拆解,让你轻松开启编程之旅。
阶段1:编程基础语法——与计算机对话的入门密码
1.1 变量声明:给数据起个名字
int age = 25; // 声明一个整型变量存储年龄
string name = "小明"; // 声明字符串变量存储姓名
double price = 19.99; // 存储带小数的价格
bool isStudent = true; // 布尔值表示真/假
char grade = 'A'; // 单个字符存储
关键点:
- 变量类型必须与数据匹配(如
int
不能存小数) - 命名规范:使用驼峰式(如
studentName
),避免中文和特殊符号
1.2 输入输出:与用户交互的窗口
Console.Write("请输入你的名字:"); // 不换行输出提示
string inputName = Console.ReadLine(); // 读取用户输入
Console.WriteLine($"你好,{inputName}!"); // 格式化输出
实战案例:制作一个简单的问候机器人
Console.WriteLine("欢迎使用问候机器人!");
Console.Write("请输入你的名字:");
string userName = Console.ReadLine();
Console.WriteLine($"👋 你好,{userName}!今天也是元气满满的一天哦~");
1.3 流程控制:让程序做选择题
条件语句:根据条件判断结果(真/假)选择执行不同代码块
// if-else经典结构
if (score >= 90) {
Console.WriteLine("优秀!");
} else if (score >= 60) {
Console.WriteLine("及格");
} else {
Console.WriteLine("需要努力");
}
// switch多分支
Console.Write("请输入星期(1-7):");
int weekDay = int.Parse(Console.ReadLine());
switch(weekDay) {
case 1: Console.WriteLine("周一"); break;
case 7: Console.WriteLine("周日"); break;
default: Console.WriteLine("工作日"); break;
}
循环语句:让代码块重复执行特定次数或满足条件时继续执行
// for循环:已知次数
for(int i=1; i<=5; i++) {
Console.WriteLine($"第{i}次循环");
}
// while循环:条件满足时执行
int count = 3;
while(count > 0) {
Console.WriteLine($"剩余次数:{count--}");
}
// do-while:至少执行一次
string input;
do {
Console.Write("输入Y退出:");
input = Console.ReadLine();
} while(input.ToUpper() != "Y");
实战练习:简易计算器
Console.WriteLine("简易计算器(支持+ - * /)");
Console.Write("请输入第一个数字:");
double num1 = double.Parse(Console.ReadLine());
Console.Write("请输入运算符:");
string op = Console.ReadLine();
Console.Write("请输入第二个数字:");
double num2 = double.Parse(Console.ReadLine());
double result = op switch {
"+" => num1 + num2,
"-" => num1 - num2,
"*" => num1 * num2,
"/" => num1 / num2,
_ => throw new Exception("无效运算符")
};
Console.WriteLine($"结果:{result}");
阶段2:面向对象编程(OOP)——让代码会"思考"
2.1 类与对象:现实世界的数字化建模
public class Dog
{
// 属性:描述特征
public string Name { get; set; }
public int Age { get; private set; } // 私有化设置权限
// 方法:定义行为
public void Bark()
{
Console.WriteLine($"{Name}({Age}岁)说:汪汪!");
}
// 构造函数:创建对象时初始化
public Dog(string name, int age)
{
Name = name;
Age = age;
}
}
// 使用示例
Dog myDog = new Dog("旺财", 3);
myDog.Bark(); // 输出:旺财(3岁)说:汪汪!
2.2 四大特性:写出更专业的代码
封装:保护数据安全
public class BankAccount
{
private decimal _balance; // 私有字段
public decimal Balance
{
// 公开属性
get { return _balance; }
private set
{
// 限制修改权限
if (value >= 0) _balance = value;
}
}
public void Deposit(decimal amount)
{
Balance += amount;
}
}
继承:代码复用神器
public class Animal
{
public virtual void MakeSound()
{ // 虚方法允许重写
Console.WriteLine("动物发出声音");
}
}
public class Cat : Animal
{ // 继承Animal
public override void MakeSound()
{ // 方法重写
Console.WriteLine("喵喵~");
}
}
多态:同一行为的不同表现
Animal[] animals = { new Cat(), new Dog() };
foreach(var animal in animals)
{
animal.MakeSound(); // 输出:喵喵~ 汪汪!
}
抽象类与接口:定义规范
// 抽象类:部分实现 + 部分抽象
public abstract class Shape
{
public abstract double CalculateArea(); // 抽象方法必须被子类实现
}
// 接口:纯规范定义
public interface IFlyable
{
void Fly();
}
实战项目:动物管理系统(可以自行尝试)
- 创建基类
Animal
包含Name
属性和Eat()
方法 - 派生
Bird
类实现Fly()
接口 - 创建
Dog
类重写MakeSound()
方法 - 使用集合管理不同动物对象,演示多态调用
阶段3:C#核心功能进阶——打造实用程序
3.1 集合类型:高效管理数据
列表(List)
List<string> fruits = new List<string> { "苹果", "香蕉" };
fruits.Add("橙子");
fruits.Remove("香蕉");
foreach (var fruit in fruits)
{
Console.WriteLine(fruit);
}
字典(Dictionary<TKey, TValue>)
Dictionary<int, string> students = new Dictionary<int, string> {
{ 1001, "张三" },
{ 1002, "李四" }
};
students[1003] = "王五"; // 添加条目
string name = students[1002]; // 获取值
LINQ查询:数据处理的瑞士军刀()
List<int> numbers = new List<int> { 5, 2, 8, 1 };
var sorted = numbers.OrderBy(n => n); // 升序排序
var evens = numbers.Where(n => n % 2 == 0); // 筛选偶数
关于LINQ的详细用法,可以参考C#系列之LINQ 深度解析:优雅查询数据的艺术
3.2 异常处理:让程序更健壮
try
{
Console.Write("输入分子:");
int numerator = int.Parse(Console.ReadLine());
Console.Write("输入分母:");
int denominator = int.Parse(Console.ReadLine());
Console.WriteLine($"结果:{numerator / denominator}");
}
catch (DivideByZeroException)
{
Console.WriteLine("错误:分母不能为零!");
}
catch (FormatException)
{
Console.WriteLine("错误:请输入有效数字!");
}
3.3 文件操作:持久化存储数据
// 写入文件
File.WriteAllText("demo.txt", "Hello, World!");
// 读取文件
string content = File.ReadAllText("demo.txt");
Console.WriteLine(content);
// 逐行处理
foreach(string line in File.ReadLines("data.csv"))
{
string[] fields = line.Split(',');
Console.WriteLine($"姓名:{fields[0]}, 年龄:{fields[1]}");
}
结语:你的编程之旅才刚刚开始
通过本教程,你已经掌握了C#的核心语法和编程思想。接下来可以尝试:
- 开发一个简单的记事本应用
- 学习Windows Forms创建桌面程序
- 探索ASP.NET Core搭建网站
记住,编程最重要的是动手实践!遇到错误时,仔细阅读错误提示,善用搜索引擎(如Stack Overflow),坚持每天写代码,你将成为真正的编程高手!