#创作计划# #游戏计划#之—C#入门3
2025-10-24 22:41:02
发布于:上海
本篇章我们将会用神秘的Markdow格式,来“辅助”大家学习。
我敢保证,本文是ACGO上,甚至全网讲的最详细的文章之一,有问题直接私信我!
上完#游戏计划#系类后,你就可以做出一款生动好玩的游戏了,或许你在初中,就可以获得人生中第一桶金。
目录
怎么办啊,进度有点慢啊?
那今天就讲点思维题。
我们把代码块的cpp换成了csharp。
目录
-
习题讲解
-
基础思维题
-
显示转换与异常捕捉
-
转义字符
-
习题
就这些吧,其他的什么if,switch,运算符啊,和C++无区别,也就是说,下一篇就会是基础篇了。
1.习题讲解
题目1:自我介绍
编写一个程序,在控制台中输出你的姓名、年龄和所在城市。要求使用变量来存储这些信息。
答案如下:
namespace ACGO教导
{
internal class Program
{
static void Main(string[] args)
{
string Myname="ND";
byte Myage=114514;
string Mycity="火星";
}
}
}
题目2:数字计算
声明两个整数变量 a 和 b,分别赋值为 10 和 5。计算并输出它们的和、差、积、商。
答案如下:
namespace ACGO教导
{
internal class Program
{
static void Main(string[] args)
{
byte a=10,b=5;
Console.WriteLine(a+b);
Console.WriteLine(a-b);
Console.WriteLine(a*b);
Console.WriteLine(a/b);
}
}
}
拓展题:编写一个程序,要求用户输入自己的名字,然后程序输出:“你好,[名字]!欢迎学习C#!”
答案如下:
namespace ACGO教导
{
internal class Program
{
static void Main(string[] args)
{
string Yourname=Console.ReadLine();
Console.Write("你好,"+Yourname+"!欢迎学习C#!");
}
}
}
2.基础思维题
1.怎样种四棵树使得任意两棵树之间的距离相等?(请拿出你的草稿纸)
答案如下:

2.有两根不均匀分布的绳子,烧完的时间都是1小时。你能用什么方法来确定一段15分钟的时间?
答案如下:
同时点燃第一根绳子的两端,并且同时点燃第二根绳子的一端。
第一根绳子两端一起烧,会在30分钟时烧完(因为燃烧时间与两端点燃的速度相加,总时间减半)。
当第一根绳子烧完时(此时已过30分钟),立即点燃第二根绳子的另一端。
第二根绳子之前已烧了30分钟,剩下部分两端同时烧,会在15分钟烧完。
从第一根绳子烧完的时刻开始,到第二根绳子烧完,正好是15分钟。

3.显示转换与异常捕捉
有显示必有隐式。
当然,隐式做游戏用不上的哈。
3.1 强制转换运算符 (类型)
double d=12.34;
int i=(int)d;
object obj="hello";//object是所有类型的基类,它是整个类型体系的根。
string str=(string)obj;
Animal animal=new Dog();
Dog dog=(Dog)animal;
3.2 Convert 类
double d=12.34;
int i=Convert.ToInt32(d);
string str="123";
int num=Convert.ToInt32(str);
bool b=Convert.ToBoolean("true");
3.3 Parse 方法
string str="123";
int i=int.Parse(str);
double d=double.Parse("12.34");
bool b=bool.Parse("true");
3.4 TryParse 方法
string str="123abc";
if(int.TryParse(str,out int result))
{
Console.WriteLine(result);
}
else
{
Console.WriteLine("转换失败");
}
3.5 as 运算符
object obj="hello";
string str=obj as string;
object obj2=123;
string str2=obj2 as string;
3.6 类型检查 + 转换
object obj="hello";
if(obj is string str)
{
Console.WriteLine(str);
}
if(obj is string)
{
string str=(string)obj;
Console.WriteLine(str);
}
3.7 自定义显式转换(不推荐!!!!!)
这个怎么说呢,我自己都会忘,有时可能还要问一下我们Unity群里的C#dl。
public class Temperature
{
public double Celsius{get;set;}
public static explicit operator Fahrenheit(Temperature temp)
{
return new Fahrenheit{Value=temp.Celsius*9/5+32};
}
}
Temperature celsius=new Temperature{Celsius=100};
Fahrenheit fahr=(Fahrenheit)celsius;
总结:
| 方法 | 适用场景 | 安全性 | 异常处理 |
|---|---|---|---|
(类型) |
基本类型转换 | 低 | 可能抛出异常 |
Convert |
复杂转换,字符串转换 | 中 | 可能抛出异常 |
Parse |
字符串转其他类型 | 低 | 格式错误时抛异常 |
TryParse |
字符串转其他类型 | 高 | 返回布尔值,不抛异常 |
as |
引用类型转换 | 高 | 失败返回 null |
is + 转换 |
任何类型转换 | 最高 | 先检查后转换 |
异常捕捉这个东西very重要。
异常捕捉是一种处理程序运行时错误的技术,让程序在遇到问题时不会崩溃,而是能够优雅地处理错误并继续运行或安全退出。
格式为:
try{
}
catch{
}
下面这个非必要,我们后续讨论时不讨论finally
finally{
}
意思大约为:
if(try中的代码出现了错误)
输出catch中的内容
else
输出try中的内容
例如:
try{
string str=Console.ReadLine();
int i=int.Parse(str);
Console.Write(i);
}
catch{
Console.Write("数据不合法");
}
当然,错误有很多种。
我们怎么分别处理这些错误呢?
看看这个代码(这个代码写的比前一个完善):
try
{
Console.Write("请输入一个整数:");
string str = Console.ReadLine();
int i = int.Parse(str);
Console.WriteLine("你输入的数字是:" + i);
}
catch (FormatException) // 具体异常类型
{
Console.WriteLine("错误:请输入有效的整数!");
}
catch (OverflowException) // 处理数字太大
{
Console.WriteLine("错误:数字太大或太小!");
}
我给大家准备了一份错误类型的表格:
| 异常类型 | 说明 | 常见场景 |
|---|---|---|
FormatException |
格式错误 | int.Parse("abc") |
DivideByZeroException |
除零错误 | int x=10/0 |
NullReferenceException |
空引用 | string s=null; s.Length |
IndexOutOfRangeException |
索引越界 | int[] arr=new int[3]; arr[5]=1 |
FileNotFoundException |
文件未找到 | File.ReadAllText("不存在的文件.txt") |
4.转义字符
转义字符我们常用的就这些:
| 转义序列 | 字符名称 |
|---|---|
\n |
换行 |
\t |
制表符 |
\" |
双引号 |
\' |
单引号 |
\\ |
反斜杠 |
| 然后还有一个知识点,在转义字符前面加上"@",就可以取消转义字符。 | |
| 即: |
string str="\\下一个\'";
等价于
string str=@"\下一个'";
还有一种情况:
string s1="他说:\"你好\""; // 他说:"你好"
string s2=@"他说:""你好"""; // 他说:"你好"
// 在逐字字符串中,双引号要用两个双引号表示
5.习题
用户信息验证系统
题目要求:
编写一个程序,要求用户输入以下信息:
姓名(字符串)
年龄(整数)
邮箱(字符串)
积分(小数)
程序需要:
对年龄和积分进行数据类型验证和异常处理
使用转义字符格式化输出
对不合法的输入给出明确的错误提示
输出示例:
=== 用户信息验证系统 ===
请输入姓名:张三
请输入年龄:25
请输入邮箱:zhangsan@email.com
请输入积分:95.5
验证成功!
用户信息:
姓名: 张三
年龄: 25
邮箱: zhangsan@email.com
积分: 95.5
好啦好啦,上完了,恭喜大家学会了C#入门。
然后记得完成练习题哦!有问题随时私信我~ 🚀
全部评论 6
ddd
2025-10-25 来自 浙江
0d
2025-10-24 来自 吉林
0d
2025-10-24 来自 吉林
0d
2025-10-24 来自 吉林
0强
2025-10-24 来自 吉林
0更得这么快???
2025-10-24 来自 吉林
0wc,还真有人学啊
2025-10-24 来自 上海
0那可不,入门的只是我滚了2次
2025-10-24 来自 上海
0太强了
2025-10-24 来自 吉林
0
























有帮助,赞一个