- 博客(31)
- 收藏
- 关注
原创 C# 密封类_密封方法 (seadled 关键字)
摘要: C#中的密封类(sealed关键字修饰)和密封方法用于限制继承与重写。密封类(如sealed class Class1)不可被继承,适用于防止因派生类修改核心逻辑导致的代码混乱。密封方法需在子类中通过sealed override声明(如Class2对Base.Move()的密封),使该方法在继承链中不可再被重写(如Class3无法重写Move())。密封机制增强了代码安全性和稳定性,适用于需固定行为或保护关键实现的场景。
2025-07-24 17:57:45
347
原创 C# 抽象类_抽象方法 (abstract关键字)
C#抽象类是一种不能实例化的模板类,可包含普通成员和抽象方法。抽象方法只有声明没有实现,必须由继承的子类通过override重写实现。示例中,Class1抽象类定义了抽象方法Ai(),子类Class2和Boss分别实现不同的攻击逻辑。抽象类主要用于定义基类模板,防止直接实例化,强制子类实现特定功能。通过父类引用指向子类对象(Class1 c1 = new Boss())可实现多态性。
2025-07-24 17:00:48
381
原创 C# 日期与时间 DateTime 结构和TimeSpan 结构
本文介绍了.NET中的DateTime和TimeSpan结构体。DateTime用于表示时间点,演示了获取当前时间(DateTime.Now)、创建特定时间(new DateTime)以及访问年、月、日等时间元素的方法。TimeSpan用于表示时间间隔,示例展示了计算两个DateTime之间的差值(Subtract方法)以及获取间隔中的天数、小时数等属性。文章还包含了时间加减操作(AddDays/AddMinutes)和格式化输出(ToString)等实用功能。这些结构体为C#中的时间处理提供了基础支持。
2025-07-23 21:01:27
329
原创 C# 只读字段 readonly关键字
本文介绍了C#中只读字段的两种赋值方法:1.在声明时直接初始化(如public readonly string name="张三");2.通过带参构造函数在实例化时赋值(如new Class1(20,"王五"))。只读字段一旦赋值后就不能修改,但可以通过这两种方式设置初始值。文章还强调,普通字段可读写,而只读字段只能读取不能通过属性或直接赋值修改,并通过代码示例展示了这些特性。
2025-07-23 20:53:55
108
原创 C# 继承 虚方法
本文介绍了C#中继承和虚方法重写的概念与应用。继承允许子类复用父类的属性和方法,提高代码复用性和可维护性。文中通过Boss、Class1和Class2类展示了单继承的实现方式,并指出C#不支持多重继承,但可以通过接口实现类似功能。虚方法标记为virtual,子类通过override可重写父类方法逻辑,如Boss和Class1中的Move方法。最后通过汽车、轮船和飞机继承交通工具类的练习,演示了继承和虚方法重写的实际应用,每个子类重写了Run和Stop方法以实现特定行为。
2025-07-23 20:38:55
638
原创 C# 值类型与引用类型的储存方式_堆栈_
值类型和引用类型的内存存储机制不同:值类型数据直接存储在栈中,变量间互不影响;引用类型在栈中存储指向堆内存数据的地址。当对象赋值时(如stu3=stu),实际传递的是引用地址,导致两个变量指向同一堆内存数据,因此修改一个会影响另一个。结构体作为值类型存储在栈中,赋值时创建副本,变量间无关联。字符串常量存储在静态资源区,修改字符串实际是改变指向而非修改原数据。理解这些存储机制差异对编程中避免意外修改非常重要。
2025-07-23 19:47:54
563
原创 C# 正则表达式
正则表达式是用于字符串匹配和处理的强大工具,它通过特殊语法定义匹配模式。文章介绍了三种常见用法:1)使用@""字符串创建正则表达式以避免转义问题;2)用Replace方法替换匹配内容;3)通过Match/Matches方法查询单个或多个匹配结果。还演示了\d、\w等基本模式及MatchCollection的遍历方法,适用于文本验证、提取和替换等场景。正则表达式能高效处理复杂的字符串操作需求。
2025-07-23 17:52:20
321
原创 C# 类 封装 属性 练习题
本文介绍了一个C#实现的Aircraft类,用于模拟飞机信息管理。该类包含飞机品牌、型号、颜色、所属公司、飞行速度等属性,通过装载人数自动判断飞机类型(大/中/小型)。主要功能包括:随机生成当前载客量(0-400人),根据载客量自动设置飞机类型(≤100为小型,>200为大型,其余为中型),以及显示完整飞机信息的功能。示例演示了创建空客A350和安东诺夫An-124两种机型,并输出其详细信息。
2025-07-22 21:15:54
233
原创 C# 析构函数
摘要:C#中的析构函数(终结器)在对象被垃圾回收时自动执行。文章通过学生类示例,演示了析构函数的定义和使用方式。当对象不再被引用时,垃圾回收机制会将其清理,此时析构函数被触发执行资源释放操作。示例中展示了对象引用置空后析构函数的调用情况,并提到可通过GC.Collect()强制启动垃圾回收,但通常不建议频繁使用。析构函数使用波浪符(~)定义,无参数和返回值,每个类只能有一个析构函数。
2025-07-22 21:11:03
290
原创 C# 属性
本文介绍了C#中属性的定义和使用方法。属性由get和set块组成,用于访问和修改字段值。属性可以简化对私有字段的访问控制,支持只读、只写和读写三种模式。C#提供了语法糖简化属性声明,如自动实现属性(public string Addres { get; set; })和默认值设置。通过示例代码演示了如何定义和使用属性,包括在类中声明属性、设置默认值、以及通过属性访问和修改字段值。还展示了枚举类型作为属性的应用场景,比较了传统字段定义与属性定义的区别。
2025-07-22 21:11:00
260
原创 C# 面向对象__类_对象
摘要:C#面向对象编程的核心是类和对象,类作为模板定义了数据结构和行为,对象是类的实例化产物。封装通过访问修饰符(public、private等)控制成员可见性,构造函数用于初始化对象数据。文章通过汽车类示例(含速度、重量等属性及启动/熄火方法)演示了类的创建、对象实例化和方法调用过程,展示了面向对象编程的三大特性之一——封装的实际应用,以及如何通过类实现代码模块化和重用性提升。(149字)
2025-07-22 21:07:18
986
原创 C# Lambdab表达式(Func<参数1类型, 参数2类型, 返回值类型> fnName =>(参数1 参数2) {方法代码体})
Lambda表达式是一种简洁的方法定义方式,可以简化函数声明,支持参数类型推断、单参数省略括号、单表达式省略return等特性。var关键字用于变量声明时自动推断类型,但必须初始化。常见使用场景包括foreach循环和方法返回值接收。Lambda表达式和var都能提高代码简洁性,但需注意var变量必须赋初值。
2025-07-21 20:19:29
150
原创 C# 异常处理 try catch finally
本文介绍了C#异常处理机制中try-catch-finally的基本用法。通过数组索引访问演示了IndexOutOfRangeException和ArrayTypeMismatchException的捕获处理,使用Exception类可捕获所有异常。示例包含异常信息输出、异常后重新输入等处理方式,并展示了finally块的执行特点。最后提供了一个循环验证用户输入数字的练习,演示了如何捕获FormatException并提示重新输入,直到获得有效数字并计算和值。这些示例涵盖了异常处理的基本场景和常用技巧。
2025-07-21 20:09:17
307
原创 C# 委托 delegate Action
本文介绍了C#中委托(delegate)的基本概念和使用方法。委托是一种存储函数引用的类型,其定义需要指定返回值类型和参数列表。使用委托分为定义和赋值两步,被委托的方法必须与委托的返回值和参数列表完全匹配。文章展示了无参无返回值、带参数、带返回值等多种委托定义方式,并演示了委托数组的使用,可以存储多个函数的引用。最后说明了委托可以作为参数传递给其他函数,实现更灵活的编程方式。委托是C#中实现回调机制的重要工具。
2025-07-21 19:56:00
356
原创 C# 结构体
本文介绍了C#中结构体的基本用法:1.使用struct关键字定义结构体,可整合多个变量组成新数据类型;2.通过实例化访问和修改结构体数据;3.演示了结构体数组的使用;4.提供了计算三维坐标体积的练习,展示了结构体构造函数的使用方法。文中特别说明结构体名称和构造函数同名的语法特性。
2025-07-21 19:30:14
551
原创 C# 枚举
本文介绍了C#中枚举(enum)的基本用法。主要内容包括:1.如何创建枚举类型,包括直接定义和使用enum关键字;2.枚举的使用方法,包括变量赋值和比较;3.查看和修改枚举对应的整数值;4.获取枚举所有值的两种方式:使用Enum.GetNames方法和typeof运算符;5.一个完整的程序示例,创建月份枚举并实现用户输入数字输出对应月份名称的功能。文章还解释了枚举底层使用整数值存储的原因和优势。
2025-07-19 16:10:05
618
原创 C# 编程实战进阶:字符串与字符串数组 (3)
输入: nums = [1, 2, 3, 4, 5, 6, 7], k = 3。输入:nums = [-1, -100, 3, 99], k = 2。向右轮转 1 步: [7, 1, 2, 3, 4, 5, 6]向右轮转 2 步: [6, 7, 1, 2, 3, 4, 5]向右轮转 3 步: [5, 6, 7, 1, 2, 3, 4]解释:向右轮转 1 步: [99, -1, -100, 3]向右轮转 2 步: [3, 99, -1, -100]输出: [5, 6, 7, 1, 2, 3, 4]
2025-07-19 14:15:08
365
原创 C# 编程实战:字符串与字符串数组 (2)
本文摘要包含五个编程问题及解决方案:1)计算364瓶可乐通过兑换最多可喝546瓶,剩余1空瓶;2)实现字母加密程序(a→d,...z→c);3)判断字符串是否为回文(正反读相同);4)找出气温连续上升的最长天数(如输入1 3 5 2 3 5 7 8 6 9输出5);5)从10个数中找出第二大的数(如输入3 5 7 2 9 5 3 10 3 8输出9)。每个问题均提供C#代码实现方案。
2025-07-17 22:12:35
417
原创 C# Math_数学操作 和 函数重载
摘要:C#中的Math类是静态类,不能实例化,需直接通过类名调用其静态方法(如Abs()、Sqrt())。函数重载通过参数类型、个数或顺序实现,调用时根据传入参数匹配对应方法。注意函数重载与返回值无关,仅取决于参数特征。
2025-07-17 19:17:58
327
原创 C# 动态字符串 StringBuilder类
摘要:StringBuilder类用于创建和操作可变字符串。通过实例化StringBuilder对象后,可使用Append()在末尾添加内容,Insert()在指定位置插入数据,Replace()替换指定内容,Remove()删除部分内容,最后通过ToString()转换为不可变字符串。这些方法提供了灵活高效的字符串操作方式,适用于需要频繁修改字符串内容的场景。
2025-07-17 18:27:15
292
原创 C# 编程实战:字符串与字符串数组 (1)
本文介绍了5个C#编程练习题目及其实现代码:1)输入一组数据进行从大到小排序;2)在已排序数组中插入新元素并保持有序;3)字符串大小写字母互换;4)模拟张三零花钱管理程序,计算年底存款或判断是否会出现资金不足;5)1-100随机数猜数游戏,提供3次机会。每个题目都包含完整的代码实现和功能说明,涵盖了数组排序、字符串处理、条件判断等常见编程技巧。
2025-07-16 22:05:32
384
原创 C# 字符串及相关操作
摘要:本文介绍了C#中string类型的基本操作和常用方法。String与string本质相同,后者是前者的别名。文章详细讲解了字符串遍历(for/foreach循环)以及10个核心字符串处理方法:大小写转换(ToLower/ToUpper)、空格处理(Trim系列)、包含判断(Contains)、运算符使用、分割(Split)与合并(Join)、字符移除(Remove)等。这些方法都返回新字符串而不修改原字符串,体现了字符串的不可变性。文中还通过示例代码演示了如何将用户输入的字符串分割转换为整数数组等实用
2025-07-16 19:52:07
541
原创 C# out与ref 关键字
out与ref,他们的。out的主要作用是传出数据,因此传入的时候可以选择性的初始化,但是在方法(函数)中必须对其赋值;ref 的主要作用是传入数据,因此在传入之前(Main中) 必须要对其赋值out 与 ref的区别1. out 传递的参数 ,在方法(函数)中必须赋值 , 在声明变量时(Main中) ,可以赋值也可以不赋值2. ref 传递的参数 ,在声明必须赋值 , 在方法中, 可以赋值也可以不赋值。
2025-07-16 19:19:29
304
原创 C# 冒泡排序 选择排序
摘要:本文介绍了两种基础排序算法。冒泡排序通过双重循环实现,外层控制轮次(n-1次),内层两两比较相邻元素(每轮减少一次比较),将最大值逐步后移。选择排序同样使用双重循环,外层控制轮次,内层每次将当前元素与后续所有元素比较,找到最小值前移。两种算法的时间复杂度均为O(n²),文中提供了C#实现代码示例,并推荐B站相关教学视频参考。
2025-07-14 21:54:23
313
原创 C# 数组 随机数
4.如果我想要查看数组中所有的数据如何操作?2.如何修改数组中的数据?5.使用 foreach关键字。3.如何访问数组中的某个数据?1.如何去创建(声明)数组?
2025-07-14 20:38:55
396
原创 C# 循环嵌套 练习题
本文总结了7个C#编程练习题:1) 打印不同形状的星号图案(矩阵、三角形、等腰三角形等);2) 查找水仙花数;3) 从混合字符串中提取数字求和;4) 计算数字变换到1的步骤;5) 人口增长计算;6) 投资复利计算;7) 百钱买鸡问题;8) 数字反转处理。每个题目都提供了完整的C#实现代码和解题思路,涵盖了循环、条件判断、字符串处理、数学运算等基础编程概念,适合初学者进行编程训练和逻辑思维培养。
2025-07-12 16:11:25
1421
1
原创 C# 控制常量方法 函数
摘要:本文介绍了C#中控制常量的基本方法及函数使用。第一部分展示了通过Console类控制扬声器音效、清屏、获取按键、设置控制台背景/前景色等操作。第二部分详细讲解了三种函数类型:1)无参数无返回值函数;2)有参数无返回值函数,强调实参与形参的类型、顺序、数量必须一致;3)有参数有返回值函数,说明了return的用法和返回值的重要性。文章通过代码示例演示了如何定义和调用不同类型的函数,强调了方法重用的优势,包括提高代码复用性、简化维护等。函数参数和返回值的使用是编程中提高代码灵活性的重要手段。
2025-07-11 20:13:53
273
原创 C# for循环、switch分支语句 练习题
本文提供了C#编程练习题的实现代码,主要包括for循环和switch分支语句两类题目。for循环练习包含:1)输出1到n的整数;2)累加用户输入的非零整数;3)计算学生平均年龄;4)计算学员人数达到20万的年份;5)计算纸张折叠次数以超过珠峰高度;6)输出指定范围内的奇偶数。switch练习包含:1)自动饮料机选择功能;2)四则运算计算器;3)根据性别和号码输出体能测试项目。这些练习题涵盖了循环控制、条件判断、数学计算等基础编程技能,适合初学者练习。所有代码均采用C#语言实现,包含输入输出处理和条件判断逻辑
2025-07-10 22:02:37
441
原创 C#小白工具网站推荐
C#学习资源与工具指南:菜鸟教程提供C#基础语法学习;微软官方文档介绍Visual Studio常用快捷键提升开发效率;CSDN文章对比分析.NET Framework与.NET Core框架的区别,帮助开发者选择合适的技术方案。这些资源涵盖了C#编程从入门到进阶的知识点,包括开发环境使用技巧和框架选择建议。(98字)
2025-07-10 10:35:04
212
原创 C# 基础练习(for循环,while循环,判断,三目运算符)
本文展示了C#编程中的基础练习,包含两部分内容:循环练习:包括输出20个星号、计算1-100的和、输出1-100的偶数;判断练习:涉及坐标象限判断、三角形判定、成绩评级、闰年判断等。还包含字符串处理(字母比较)、数学问题(猴子吃桃)和特殊应用(电报解密)。主要演示了for循环、if判断、while循环等基础语法,以及三目运算符的使用方法。
2025-07-10 09:47:18
485
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人