#创作计划# #游戏计划#之—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
昨天 来自 浙江
0d
昨天 来自 吉林
0d
昨天 来自 吉林
0d
昨天 来自 吉林
0强
昨天 来自 吉林
0更得这么快???
昨天 来自 吉林
0wc,还真有人学啊
昨天 来自 上海
0那可不,入门的只是我滚了2次
昨天 来自 上海
0太强了
昨天 来自 吉林
0























有帮助,赞一个