没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
C# 面试题 100 问:从基础到进阶,全
面解析与实战
一、C# 基础概念
1.1 C# 与.NET 的关系
.NET 是一个免费的跨平台开放源代码开发人员平台,用于生成多种类型的应用程序。它包含
了公共语言运行时(CLR)和.NET 类库等重要组件。C# 则是一种面向对象编程语言,专门
为开发.NET 框架上的程序而设计,运行在.NET CLR 上。可以说,.NET 是 C# 的运行环境,
C# 借助.NET 平台的强大功能和丰富类库,能够创建出安全可靠的应用程序。例如,使用 C#
开发一个 Windows 桌面应用程序,就离不开.NET 框架提供的基础类库和运行时支持,如
Windows Forms 等应用模板。
1.2 数据类型
1.2.1 值类型
常见的值类型包括整数类型(如 int、short、long 等)、浮点类型(如 float、double)、字符
类型(char)、布尔类型(bool)以及结构体类型等。值类型的特点是直接在栈上存储数据,
其存储方式是将数据本身存储在变量所分配的栈内存空间中。例如,当声明一个 int 类型变量
int num = 10; 时,数值 10 就直接存储在为 num 分配的栈内存位置。与引用类型不同,值类
型在赋值时是进行值的复制。比如,int a = 5; int b = a; 这里将 a 的值复制给 b,后续对 b 的
修改不会影响 a 的值。
1.2.2 引用类型
引用类型包括类、接口、数组、委托、字符串等。其工作原理是在堆上创建对象,而变量存储
的是指向堆内存中对象位置的引用。例如,string str = "Hello"; 这里的 str 实际上是指向存储
"Hello" 字符串对象在堆内存中的引用。当进行引用类型赋值时,如 string str1 = "World";
string str2 = str1; 此时 str2 和 str1 指向堆上同一个字符串对象,对 str2 所指向对象的修改会
影响到 str1 所指向的对象,因为它们都指向同一个内存地址。
1.3 变量与常量
在 C# 中,变量的声明需要指定数据类型和变量名,例如 int age; 声明了一个 int 类型的变量
age。变量可以在声明时初始化,也可以先声明后赋值,如 int count = 0; 或者在后续代码中
count = 10;。而常量则是使用 const 关键字定义,并且在定义时必须初始化,且常量的值在
后续代码中不能被修改,例如 const double PI = 3.14159;。常量通常用于定义那些在程序运
行过程中固定不变的值,如数学常数、配置参数等,这样可以增强程序的可读性和可维护性,
避免在多处使用相同的字面量而导致难以修改和维护的问题。
二、控制结构
2.1 条件语句
在 C# 中,if - else 语句是最常用的条件控制语句之一,它允许程序根据不同的条件执行不同
的代码块。if 判断 if 后面跟判断条件,或者说表达式,其结果必须是 bool 类型,即结果为
“true” or “false”。例如:让用户输入一个年龄,如果小于 23 则说:你还很年轻,赶快奋斗吧
。示例代码如下:
Console.WriteLine("请输入一个年龄");
int age = Convert.ToInt32(Console.ReadLine());
if (age < 23)
{
Console.WriteLine("你还很年轻,赶快奋斗吧!");
}
而 if - else 语句则在 if 的判断基础上,增加了对不满足条件情况的处理。例如:让用户输入一
个年龄,如果小于 23 则说:你还很年轻,赶快奋斗吧,否则:都这么老了,还不奋斗!!示
例代码如下:
Console.WriteLine("请输入一个年龄");
int age = Convert.ToInt32(Console.ReadLine());
if (age < 23)
{
Console.WriteLine("你还很年轻,赶快奋斗吧!");
}
else
{
Console.WriteLine("都这么老了,还不奋斗!");
}
当需要处理多个条件分支时,可以使用 if - else if - else 结构。例如,根据成绩判断学生的等
级:
int score = 85;
if (score >= 90)
{
Console.WriteLine("优秀");
}
else if (score >= 80)
{
Console.WriteLine("良好");
}
else if (score >= 70)
{
Console.WriteLine("合格");
}
else
{
Console.WriteLine("不合格");
}
switch 语句是多路分支语句,它提供了一种有效的方式,可以根据表达式的值将执行转移到
代码的不同部分。开关表达式可以是整数类型(如 int、char、byte 或 short)、枚举类型或者
字符串类型。其基本语法如下:
switch (expression)
{
case value1:
// 语句块 1
break;
case value2:
// 语句块 2
break;
//...
case valueN:
// 语句块 N
break;
default:
// 默认语句块
break;
}
例如,根据用户的输入(一个字符),决定执行哪种操作:
char operation = 'a';
switch (operation)
{
case 'a':
Console.WriteLine("Addition");
// 执行加法操作的代码
break;
case's':
Console.WriteLine("Subtraction");
// 执行减法操作的代码
break;
case'm':
Console.WriteLine("Multiplication");
// 执行乘法操作的代码
break;
case 'd':
Console.WriteLine("Division");
// 执行除法操作的代码
break;
default:
Console.WriteLine("Invalid operation");
// 执行默认操作的代码
break;
}
需要注意的是,在 C# 中,不允许重复的大小写值,开关中变量的数据类型和案例的值必须是
同一类型,案例的值必须是常量或文字,不允许使用变量。break 语句用于终止当前序列,若
没有 break,程序会继续执行下一个 case 或 default 块(这种现象称为 “穿透”)。default 块
是可选的,用于处理所有未匹配的 case 值。从 C# 7.0 开始,switch 表达式也可以用于模式
匹配,允许更复杂的匹配逻辑。
if - else 和 switch 语句的主要区别在于,if - else 语句适用于对范围进行判断,而 switch 语句
更适合对多个离散的值进行判断。当条件分支较多且是基于某个表达式的不同值时,switch
语句可以使代码更加清晰和易于维护,而 if - else 语句在处理复杂的条件逻辑范围时更具灵活
性。
2.2 循环结构
for 循环是程序语言开发中常见的技法之一,这类循环可以执行指定的次数,for 循环比较适合
于指定次数的应用。其基本语法如下:
剩余38页未读,继续阅读
资源评论
幽兰的天空
- 粉丝: 2326
- 资源: 68
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 车辆船只人员检测3-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 物流数据相关标准清单.xlsx
- python语言kssppxhb爬虫程序代码xQZQ.txt
- python语言kssphb爬虫程序代码QZQ.txt
- python语言kssppxhb爬虫程序代码xQZQ1.txt
- python语言kssp爬虫程序代码ZQ.txt
- python语言kssp爬虫程序代码QZQ.txt
- python语言kssp爬虫程序代码QZQ1.txt
- python语言kuaishoushiping爬虫程序代码QZQ.txt
- Python项目开发流程及其各环节注意事项详解
- 汽车-车联网数据相关标准清单.xlsx
- 车辆船只检测4-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 基于51单片机的数码管多种波形发生器设计(protues仿真)-毕业设计
- 四足机器人步态控制算法解析与代码实现
- 四足机器人步态控制算法及Python实现
- 四足机器人步态控制算法的技术原理及Python实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功