C#学习
文章平均质量分 69
Vanderbiol
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C#学习笔记——基础概念——结构体和类
本文对比了C#中结构体和类的主要区别。结构体是值类型,分配在栈上,复制时创建新副本,适合小型数据且无需继承的场景;类是引用类型,分配在堆上,支持继承和复杂逻辑。结构体默认成员为private,不能定义无参构造函数,而类可以。示例代码展示了结构体和类的用法差异:结构体赋值创建新副本,类赋值只是引用复制。建议结构体用于小型数据(16字节内)和值语义场景,类用于大型数据、继承和引用语义需求。结构体适合性能敏感场景,类适合复杂逻辑需求。原创 2025-07-18 08:57:24 · 525 阅读 · 0 评论 -
C#学习笔记——基础概念——数组
本文系统介绍了C#数组的核心知识。数组是固定大小、类型相同的数据结构,通过索引访问元素(从0开始)。主要内容包括:数组声明与初始化语法(如int[] arr = {1,2,3})、元素访问方法、多维数组和交错数组的区别、常用属性和方法(Length、Sort等)。文章对比了数组与List<T>的特性差异,列举了索引越界等常见错误,并介绍了ref遍历、Span<T>等进阶技巧。数组适合数据量固定且需高性能访问的场景,而动态数据推荐使用List<T>。掌握这些知识能帮助开发者原创 2025-07-18 08:38:41 · 566 阅读 · 0 评论 -
C#学习笔记——基础概念——C#中的?和??
C#中空值处理运算符详解:?、??和??=的用法与区别。?运算符用于可空类型和三元条件判断;??空合并运算符在左值为null时返回右值;??=运算符在左值为null时才赋值。这些运算符能简化代码,提高可读性,常见于数据库交互、表单处理和可选参数等场景。最佳实践建议合理使用这些运算符替代冗长的null判断,但要避免过度嵌套导致逻辑混乱。组合使用时可以优雅处理多层对象属性访问和默认值设置。原创 2025-07-18 08:26:09 · 517 阅读 · 0 评论 -
C#学习笔记——基础概念——值传递、引用传递、输出传递
本文介绍了C#中参数传递的三种方式:值传递、引用传递(ref)和输出传递(out)。值传递会创建参数副本,不会影响原始变量;ref关键字通过传递内存地址允许方法修改原始变量,需在调用前后都赋值;out关键字主要用于从方法返回多个值,调用前无需赋值但方法内必须赋值。文章详细说明了ref和out的语法、使用场景及注意事项,并对比了两者的区别,还介绍了C#7.0后对ref和out的增强功能。out参数特别适合Try模式和多返回值场景,能避免异常处理开销并优化性能。原创 2025-07-17 16:52:28 · 821 阅读 · 0 评论 -
C#学习笔记——基础概念——Namespace详解
特性C++C#命名空间关键字namespace是否支持匿名命名空间✅ 支持❌ 不支持是否支持内联命名空间✅ C++11+ 支持❌ 不支持是否支持命名空间别名✅✅是否支持嵌套命名空间✅✅是否需要头文件声明✅❌是否强制命名空间与文件结构一致❌❌(但建议一致)同一命名空间下的多个类:当这些类紧密相关或服务于相同的功能模块时。不同命名空间下的类:当它们代表不同的概念或服务不同的业务领域时。分多个文件但同一命名空间:为了提高代码的可维护性和组织性,特别是对于较大的项目。原创 2025-07-17 16:31:02 · 786 阅读 · 0 评论 -
C#学习笔记——基础概念——什么是Lambda 表达式
C#中的Lambda表达式是定义匿名函数的简洁方式,支持两种形式:表达式Lambda(适合简单计算)和语句Lambda(适合复杂逻辑)。与C++相比,C#的Lambda语法更简洁(无需捕获列表)。常见应用场景包括LINQ查询、事件处理和异步编程。Lambda可以捕获外部变量(闭包),并适配Action、Func等内置委托类型。这种语法特性显著提升了代码的可读性和开发效率,特别适合短小、一次性的函数场景。使用时需注意多线程环境下的变量修改问题。原创 2025-07-17 10:57:24 · 763 阅读 · 0 评论 -
C#学习笔记——基础概念——什么是委托(Delegate)
C# 的委托 = C++ 的函数指针 + std::function + lambda 的结合体,并且更安全、更强大、更易用。原创 2025-07-15 16:04:27 · 226 阅读 · 0 评论
分享