C#学习笔记

一、C# 入门基础

1. 什么是 C#?

简单说,C# 是一种编程语言,就像我们说话的中文、英文一样,是人和电脑沟通的工具。它能用来做很多事:比如做 Windows 系统的软件、网页、手机 APP,甚至 Unity 游戏开发也常用它。

2. 准备工具

学 C# 得有个 “写字板” 和 “运行器”,推荐用Visual Studio(简称 VS),这是微软专门为 C# 等语言做的工具,免费版就够用。

  • 安装:去微软官网搜 “Visual Studio Community”,下载后按提示安装,记得选上 “.NET 桌面开发” 这个选项。
  • 第一个程序:打开 VS,点 “创建新项目”,选 “控制台应用”,起个名字(比如 “HelloWorld”),点 “创建”。VS 会自动生成一段代码,点上面的 “启动” 按钮(绿色三角),就能看到程序运行结果啦。
3. 第一个程序详解

using System; // 引用系统工具包,就像用手机前要先解锁

namespace HelloWorld // 给代码起个“文件夹名”,方便管理

{

class Program // 代码的“容器”,就像装东西的盒子

{

// 程序的入口,电脑从这里开始执行代码

static void Main(string[] args)

{

Console.WriteLine("你好,世界!"); // 打印一句话到屏幕上

}

}

}

运行后会弹出一个黑窗口,显示 “你好,世界!”,这就是最基础的程序啦。

二、数据和变量

1. 数据类型(电脑能存哪些东西)
  • 整数:int,比如年龄 18、数量 5,能存 - 20 亿到 20 亿之间的数。
  • 小数:double,比如 3.14、0.5,能存带小数点的数。
  • 文字:string,用双引号括起来,比如 "张三"、"abc"。
  • 真假:bool,只有两个值:true(真)和false(假),比如 “今天下雨吗?” 的答案。
2. 变量(给数据起个名字)

就像给杯子贴标签,方便以后用。

 

int 年龄 = 20; // 定义一个整数变量“年龄”,值是20

string 名字 = "小明"; // 定义一个文字变量“名字”,值是“小明”

double 身高 = 1.75; // 定义一个小数变量“身高”,值是1.75

// 还可以用var让电脑自己猜类型

var 爱好 = "打球"; // 电脑会自动认出“爱好”是string类型

3. 常量(固定不变的值)

有些值从始至终都不变,比如圆周率 π,就可以定义成常量。

 

const double 圆周率 = 3.14159; // 用const声明,一旦定义就改不了

三、运算和判断

1. 基本运算

和数学里的加减乘除差不多:

 

int a = 10;

int b = 3;

int 和 = a + b; // 13

int 差 = a - b; // 7

int 积 = a * b; // 30

int 商 = a / b; // 3(整数相除只保留整数部分)

int 余数 = a % b; // 1(10除以3余1)

2. 判断语句(if...else)

就像生活中做选择:“如果下雨就带伞,否则不带”。

 

int 分数 = 75;

if (分数 >= 60) // 如果分数大于等于60

{

Console.WriteLine("及格啦!");

}

else // 否则(分数小于60)

{

Console.WriteLine("要补考哦~");

}

还可以多条件判断:

 

int 年龄 = 15;

if (年龄 < 12)

{

Console.WriteLine("儿童");

}

else if (年龄 < 18) // 前面条件不满足时,再判断这个

{

Console.WriteLine("青少年");

}

else

{

Console.WriteLine("成年人");

}

3. 循环语句(重复做一件事)
  • for 循环:知道要做几次的时候用。比如从 1 数到 5:
 

for (int i = 1; i <= 5; i++) // i从1开始,每次加1,直到i>5停止

{

Console.WriteLine(i); // 依次打印1、2、3、4、5

}

  • while 循环:不知道要做几次,只要条件满足就一直做。比如猜数字,直到猜对为止:
 

int 正确数字 = 7;

int 猜的数字 = 0;

while (猜的数字 != 正确数字) // 只要没猜对就一直循环

{

Console.Write("猜一个数字:");

猜的数字 = int.Parse(Console.ReadLine()); // 读入输入的数字

}

Console.WriteLine("猜对啦!");

四、数据集合(装一堆数据的容器)

1. 数组(固定大小的盒子)

就像一排大小一样的格子,每个格子放一个数据,数量一开始就定好不能改。

 

// 定义一个能装3个整数的数组

int[] 成绩 = new int[3];

成绩[0] = 90; // 第一个格子(索引从0开始)放90

成绩[1] = 85; // 第二个格子放85

成绩[2] = 95; // 第三个格子放95

// 也可以直接赋值

string[] 水果 = { "苹果", "香蕉", "橘子" };

// 用循环遍历数组里的所有数据

for (int i = 0; i < 水果.Length; i++) // Length是数组的长度

{

Console.WriteLine(水果[i]);

}

2. 列表(List,可伸缩的袋子)

数组大小固定不方便,列表就像能变大变小的袋子,想放多少放多少。

 

// 先引用System.Collections.Generic这个工具包

using System.Collections.Generic;

// 定义一个装字符串的列表

List<string> 动物 = new List<string>();

// 往列表里加东西

动物.Add("猫");

动物.Add("狗");

动物.Add("兔子");

// 查看列表里有几个元素

Console.WriteLine("动物数量:" + 动物.Count); // 输出3

// 遍历列表(用foreach更简单)

foreach (string 动物名 in 动物)

{

Console.WriteLine(动物名);

}

// 移除元素

动物.Remove("狗"); // 把“狗”从列表里删掉

3. 字典(Dictionary,键值对容器)

就像查字典,通过 “拼音”(键)找到 “汉字”(值),一一对应。

 

// 定义一个键是int类型,值是string类型的字典

Dictionary<int, string> 学号对应姓名 = new Dictionary<int, string>();

// 添加键值对

学号对应姓名.Add(101, "张三");

学号对应姓名.Add(102, "李四");

// 通过键找值

Console.WriteLine(101号的姓名:" + 学号对应姓名[101]); // 输出张三

五、面向对象(重点中的重点)

1. 类和对象(用代码描述现实中的东西)
  • :就像 “图纸”。比如 “汽车图纸”,规定了汽车有轮子、能跑。
  • 对象:根据图纸做出来的 “实物”。比如用汽车图纸造出来的具体某辆汽车。
 

// 定义一个“人”类(图纸)

class 人

{

// 字段(属性):人有姓名、年龄

public string 姓名;

public int 年龄;

// 方法(行为):人会说话

public void 说话()

{

Console.WriteLine("我叫" + 姓名 + ",今年" + 年龄 + "岁");

}

}

// 创建对象(根据图纸造实物)

人 小明 = new 人();

小明.姓名 = "小明"; // 给对象的属性赋值

小明.年龄 = 18;

小明.说话(); // 调用对象的方法,会输出“我叫小明,今年18岁”

2. 构造函数(创建对象时初始化)

上面给小明赋值有点麻烦,构造函数能在创建对象时就把属性设好。

class 人

{

public string 姓名;

public int 年龄;

// 构造函数(和类名一样)

public 人(string 姓名, int 年龄)

{

this.姓名 = 姓名; // this代表当前对象

this.年龄 = 年龄;

}

public void 说话()

{

Console.WriteLine("我叫" + 姓名 + ",今年" + 年龄 + "岁");

}

}

// 创建对象时直接传值

人 小红 = new 人("小红", 20);

小红.说话(); // 输出“我叫小红,今年20岁”

3. 继承(子承父业)

比如 “学生” 也是 “人”,学生继承了人的姓名、年龄,还多了 “学号” 这个属性。

 

// 父类(基类)

class 人

{

public string 姓名;

public int 年龄;

}

// 子类(派生类),用:表示继承

class 学生 : 人

{

public string 学号; // 学生特有的属性

public void 学习()

{

Console.WriteLine(姓名 + "在学习,学号是" + 学号);

}

}

// 使用

学生 小刚 = new 学生();

小刚.姓名 = "小刚"; // 继承了父类的姓名

小刚.学号 = "2023001";

小刚.学习(); // 输出“小刚在学习,学号是2023001”

六、异常处理(程序出错了怎么办)

就像生活中难免犯错,程序也可能出错(比如输入的不是数字),异常处理能让程序出错时不崩溃,还能友好提示。

 

try

{

Console.Write("请输入一个数字:");

string 输入 = Console.ReadLine();

int 数字 = int.Parse(输入); // 如果输入的不是数字,这里会出错

Console.WriteLine("你输入的是:" + 数字);

}

catch

{

// 出错时执行这里

Console.WriteLine("输入错误!请输入数字哦~");

}

七、小技巧和规范

  1. 注释:给代码写说明,电脑会忽略注释内容,方便自己和别人看懂。
 

// 这是单行注释

/*

这是多行注释

可以写很多行

*/

  1. 命名规范:起名字要有意义,比如存年龄就叫 “年龄” 或 “age”,别叫 “a”“b”。
  1. 调试:程序出问题时,用 VS 的调试功能(打断点),一步步看代码执行过程,找错误在哪。

八、下一步学什么

  1. 多写代码:比如做个简单的计算器、学生信息管理小工具。
  1. 学 Windows 窗体(WinForm):做带按钮、输入框的图形界面程序。
  1. ASP.NET Core:用 C# 做网页。
  1. 学 Unity:用 C# 做游戏。

记住,编程是练出来的,多看例子、多动手写,慢慢就会啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值