想自己做网站需要会什么软件网站建设开票内容些什么

张小明 2025/12/29 5:00:14
想自己做网站需要会什么软件,网站建设开票内容些什么,沧县网站制作价格,搜索引擎营销的原理目录 一、异常处理#xff1a;程序的 安全防护网 1. 异常的核心概念 2. 异常处理机制 关键规则#xff1a; 3. 自定义异常与异常链 自定义异常步骤#xff1a; 异常链处理#xff1a; 4. 面试高频题 二、字符串操作#xff1a;不可变特性与高效处理 …目录一、异常处理程序的 安全防护网1. 异常的核心概念2. 异常处理机制关键规则3. 自定义异常与异常链自定义异常步骤异常链处理4. 面试高频题二、字符串操作不可变特性与高效处理1. string 核心特性2. 常用字符串操作方法3. 字符串格式化进阶插值语法推荐标准格式说明符4. 高效字符串拼接StringBuilder核心用法关键特性5. 面试高频题三、集合框架动态存储与数据操作1. 数组与集合的区别2. 常用集合详解1ArrayList非泛型集合2List 泛型集合推荐3集合排序进阶3. 面试高频题总结一、异常处理程序的 安全防护网异常是程序运行时发生的意外事件如除以零、空引用等与编译阶段的语法错误不同异常需要通过特定机制捕获和处理避免程序崩溃。1. 异常的核心概念异常本质C# 中所有异常都是类最终派生自System.Exception基类。分类体系系统预定义异常继承自System.SystemException如DivideByZeroException除数为零、NullReferenceException空引用、IndexOutOfRangeException索引越界等。自定义异常推荐继承自System.ApplicationException便于区分系统异常和业务异常如用户名长度异常。异常对象关键成员Message错误描述信息。StackTrace调用堆栈信息定位异常源头。InnerException内部异常支持异常链。2. 异常处理机制异常处理的核心语法是try-catch-finally配合throw关键字实现异常抛出与传递public static int Div(int a, int b) { try { return a / b; // 可能产生异常的代码 } catch (DivideByZeroException e) { Console.WriteLine(异常提示除数不能为零); return -1; // 处理异常后返回默认值 } finally { Console.WriteLine(无论是否异常此代码必执行); // 常用于关闭资源 } }关键规则多 catch 匹配遵循 先子后父 原则子类异常在前Exception基类在后避免子类异常被父类捕获。finally 执行时机在return之前执行但无法修改return的返回结果适用于释放 IO 流、数据库连接等资源。异常抛出throw e重置异常堆栈不推荐。throw保留原始异常堆栈推荐用于异常传递。throw new 异常类()手动抛出自定义异常支持异常链构建。3. 自定义异常与异常链自定义异常步骤继承ApplicationException或Exception。实现构造函数默认、带消息、带内部异常等重载。示例// 自定义用户名长度异常 class UsernameLengthLimitException : ApplicationException { // 无参构造函数 public UsernameLengthLimitException() { } // 带错误消息的构造函数 public UsernameLengthLimitException(string message) : base(message) { } // 带消息和内部异常的构造函数 public UsernameLengthLimitException(string message, Exception innerException) : base(message, innerException) { } } // 使用自定义异常 public void AddUser(string username) { if (username.Length 6 || username.Length 12) { throw new UsernameLengthLimitException( $用户名长度必须在6-12位当前长度{username.Length}); } }异常链处理通过InnerException属性获取异常链中的所有异常信息适用于多层调用场景catch (Exception e) { while (e ! null) { Console.WriteLine($异常类型{e.GetType().FullName}); Console.WriteLine($异常消息{e.Message}); e e.InnerException; } }4. 面试高频题throw 与 throw e 的区别throw保留原始异常堆栈throw e重置堆栈丢失异常源头信息。finally 是否会执行无论是否发生异常、是否捕获异常finally 块都必然执行除非程序强制终止。常见系统异常除数为零、空引用、索引越界、类型转换失败、文件未找到等。二、字符串操作不可变特性与高效处理C# 中string是不可变引用类型所有修改操作都会创建新字符串对象。掌握字符串操作的核心方法和高效工具如StringBuilder是优化性能的关键。1. string 核心特性不可变性字符串创建后无法修改内容如Replace、Substring等方法都会返回新字符串。字符串池直接赋值的字符串如string str abc会存入字符串池重复赋值时复用对象节省内存。创建方式对比推荐string str abc仅创建 1 个对象复用字符串池。不推荐string str new string(new char[]{a,b,c})创建 2 个对象堆和字符串池各 1 个。2. 常用字符串操作方法操作类型关键方法示例查找定位IndexOf首次出现、LastIndexOf最后出现str.IndexOf(hello)→ 返回起始索引未找到返回 - 1存在判断Containsstr.Contains(test)→ 布尔值首尾判断StartsWith、EndsWithstr.StartsWith(hello)空值判断IsNullOrEmpty、IsNullOrWhiteSpacestring.IsNullOrWhiteSpace(str)→ 包含 null、空串、空白字符拼接、Concat、Joinstring.Join(,, 18,20,21)→ 18,20,21格式化插值语法$、string.Format$姓名{name}年龄{age}分割Splitstr.Split(,)→ 字符串数组替换Replacemsg.Replace(TMD, ***)截取Substringstr.Substring(3,2)→ 从索引 3 开始截取 2 个字符去空格Trim首尾、TrimStart、TrimEndmsg.Trim()3. 字符串格式化进阶插值语法推荐支持表达式、条件判断和格式指定简洁高效int age 18; string name 李四; Console.WriteLine(${name}是{(age 18 ? 成年 : 未成年)}); Console.WriteLine(${DateTime.Now:yyyy-MM-dd HH:mm:ss}); // 日期格式化 Console.WriteLine(${1234.56:C2}); // 货币格式化 → 1,234.56标准格式说明符数字C货币、D十进制整数、F固定小数位、P百分比。日期yyyy四位年、MM两位月、dd两位日、HH24 小时制。4. 高效字符串拼接StringBuilder当需要大量修改字符串如循环拼接时string的不可变性会导致频繁创建临时对象性能低下。StringBuilder是可变字符串工具通过动态扩容实现高效修改。核心用法using System.Text; // 需引入命名空间 // 创建StringBuilder指定初始容量减少扩容次数 StringBuilder sb new StringBuilder(100); // 追加内容 sb.Append(hello); sb.Append(123); sb.AppendLine(world); // 追加后换行 // 插入、替换、删除 sb.Insert(5, ); // 在索引5插入空格 sb.Replace(world, CSharp); sb.Remove(10, 2); // 从索引10开始删除2个字符 // 转换为string string result sb.ToString(); Console.WriteLine(result); // 输出hello 123CShar关键特性默认初始容量 16容量不足时自动翻倍扩容。支持方法连写如sb.Append(a).Append(b)。适用于循环拼接、大量字符串组装场景性能远超string的操作。5. 面试高频题null 与 的区别null表示未创建对象无引用表示创建了对象但内容为空。String 与 StringBuilder 的区别String 不可变修改创建新对象StringBuilder 可变修改不创建新对象性能更优。字符串池的作用复用相同字符串对象减少内存占用提升性能。三、集合框架动态存储与数据操作集合框架用于存储和操作多个数据相比数组固定长度、方法有限集合支持动态扩容、丰富的操作方法是实际开发中的核心工具。C# 中常用集合包括ArrayList、ListT、LinkedListT等。1. 数组与集合的区别特性数组集合如 ListT长度固定不变动态扩容类型安全支持但需手动保证泛型集合编译时类型检查操作方法有限依赖 Array 类丰富Add、Remove、Sort 等性能索引访问快插入 / 删除慢索引访问快ListT插入 / 删除视结构而定2. 常用集合详解1ArrayList非泛型集合存储object类型支持存储任意类型元素。存在装箱 / 拆箱开销性能较低类型不安全编译时无法检查元素类型。核心用法ArrayList list new ArrayList(); list.Add(1); list.Add(abc); // 允许混合类型 list.Insert(1, true); // 插入元素 list.RemoveAt(2); // 删除指定索引元素 // 需强制类型转换可能抛出InvalidCastException int num (int)list[0];2ListT泛型集合推荐泛型特性编译时类型检查避免装箱 / 拆箱性能更高。底层是动态数组初始容量 4扩容时翻倍最大容量为int.MaxValue。核心用法// 创建int类型的List Listint numList new Listint(); // 添加元素 numList.Add(1); numList.AddRange(new int[]{2,3,4}); // 批量添加 // 排序默认升序 numList.Sort(); // 查找 bool has3 numList.Contains(3); int index numList.IndexOf(3); // 遍历 foreach (int num in numList) { Console.WriteLine(num); } // 循环删除元素需注意索引变化 for (int i numList.Count - 1; i 0; i--) { if (numList[i] 2) { numList.RemoveAt(i); } }3集合排序进阶ListT的Sort方法支持三种排序方式元素类实现IComparableT接口默认排序。自定义IComparerT比较器。使用ComparisonT委托简洁灵活。示例自定义学生类排序按年龄升序class Student : IComparableStudent { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } // 实现IComparable接口 public int CompareTo(Student other) { if (other null) return 1; return this.Age.CompareTo(other.Age); // 按年龄升序 } } // 使用 ListStudent students new ListStudent() { new Student{Id1, Name张三, Age21}, new Student{Id2, Name李四, Age18} }; students.Sort(); // 按年龄升序排序3. 面试高频题ArrayList 与 ListT的区别类型安全ListT泛型类型检查ArrayList 无。性能ListT无装箱 / 拆箱性能更优。适用场景ListT用于现代开发ArrayList 仅用于遗留代码。ListT的扩容机制初始容量 4容量不足时翻倍扩容4→8→16...最大容量为int.MaxValue。foreach 循环中能否修改集合不能会抛出InvalidOperationException集合已修改枚举操作无法执行需使用 for 循环并从后往前遍历修改。总结本文系统梳理了 C# 中异常处理、字符串操作和集合框架三大核心模块的关键知识点包括核心概念、实战用法和面试高频考点。掌握这些内容能帮助开发者编写更稳定、高效、可维护的代码异常处理合理使用try-catch-finally和自定义异常提升程序容错性。字符串操作利用string不可变特性和StringBuilder高效拼接平衡性能与开发效率。集合框架优先使用ListT等泛型集合根据场景选择合适的数据结构优化数据操作性能。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

乱起封神是那个网站开发的?游戏开发培训学校

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个完整的SQLite安装和配置脚本,支持Windows、Mac和Linux三大平台。要求包含以下内容:1) 各平台安装命令(如Windows的choco安装、Mac的br…

张小明 2025/12/26 18:40:10 网站建设

购物商城html网站代码建构网站

WarcraftHelper:魔兽争霸III终极优化指南 - 让经典游戏在新电脑上重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸…

张小明 2025/12/27 18:21:57 网站建设

惠安网站建设费用注册公司新规定最新2024

Font Awesome 提供了多个与性别(gender)相关的图标,主要位于“Genders”分类中。这些图标基于天文符号,常用于表示男性、女性、跨性别等。 常见性别图标列表(最新版本 Font Awesome 6/7): ♂ …

张小明 2025/12/26 21:11:25 网站建设

大庆 网站建设python不用框架做网站

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2025/12/27 6:36:49 网站建设

网站字体变大代码安卓手机建网站

三步上手:TorchAir自定义FX Pass实战指南 在昇腾NPU上利用PyTorch图模式进行大模型推理时,为充分挖掘硬件性能,开发者常需实现多流并行等优化手段。然而,此前实现多流并行的方式存在一定局限:开发者需在模型脚本中手动…

张小明 2025/12/27 18:22:01 网站建设

网站建设中upl连接从优化角度来建设网站

深夜的实验室里,对着空白文档发呆的研究生小林,突然收到了一条AI生成的论文大纲。第二天,导师看着那份结构清晰、重点突出的初稿,破天荒地回复了三个字:“有点东西。” 这并非科幻场景。南京财经大学一项调研显示&…

张小明 2025/12/27 18:22:01 网站建设