C# 2026

.NET微软文档:https://learn.microsoft.com/zh-cn/dotnet/standard/glossary

C#微软文档:https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/

百度网盘离线文档中文版: https://pan.baidu.com/s/1Vto65ibHoozMylSg_BUeuQ?pwd=ACAC

离线文档:

不确定的疑问看文档,以下基础内容可能存在错误,为本人提炼,下班完成,尝试短期掌握C#开发部分,工作环境大变化,准备自学开润,目标过完年开始海投。


.NET是免费、开源、跨平台的开发框架,用于构建新式应用和云服务。Microsoft在 .NET 平台上提供 3 种语言 - C#、F# 和 Visual Basic。

BCL:Base,基类库

CLR:Common,公共语言运行时,为一种虚拟机。

GC: garbage,垃圾自动回收机制

什么是托管和非托管代码?

官网截图:

简单说区分关键是否在CLR执行。


OOP思想:通过类型(Class)和对象(Object)模拟现实世界,类型代表抽象分类(如"工程师"),对象代表具体实例(如"黄药师")。类型可以实例化成无数个对象。

  • 开发演进:
    • 初期:单一对象承担多种职责(如老板身兼研发、生产、销售)
    • 发展:通过定义新类型分解职责(创建操作员、销售员类型)
    • 成熟:建立类型层级关系(研发部→研发部长→工程师)

.NET基元类型:

  • 数值类型:
    • 整数系列:
      • System.SByte:有符号8位值(-128~127)
      • System.Byte:无符号8位值(0~255)
      • System.Int16/System.UInt16:16位有/无符号整数
      • System.Int32/System.UInt32:32位有/无符号整数
      • System.Int64/System.UInt64:64位有/无符号整数
    • 浮点系列:
      • System.Single:IEEE32位浮点
      • System.Double:IEEE64位浮点
      • System.Decimal:128位高精度浮点(金融计算专用)
  • 其他类型:
    • System.Char:16位Unicode字符
    • System.Boolean:true/false布尔值
    • System.String:字符数组(引用类型)
    • System.Object:所有类型的基类(引用类型)
  • 存储区别:
    • 值类型(除String/Object外):在栈上分配内存
    • 引用类型(String/Object):在堆上分配内存

值类型与引用类型的区别?

值类型存储在栈,引用类型存储在堆(地址保存在栈)。

栈内存与堆内存区别?

.NET通过值类型和引用类型分类?

区分简单:需要动态分配内存大小类型属于引用类型,其他归类到值类型。


进程与线程的概念

进程是操作系统分配资源的独立单位,线程是进程内的执行单元;一个进程至少包含一个线程,多个线程可共享数据。

堆栈(也叫栈),每个线程拥有私有堆栈空间,防止内存冲突,存储局部变量和函数参数等值类型数据。

共享堆内存,在.NET中由CLR管理托管堆(Managed Heap),使用new关键字创建的对象存储在托管堆。

科技园区比喻:将计算机比作科技园区,操作系统是管理单位,每家企业代表一个进程程序 )。将企业部门(研发部/生产部等)比作线程 ,每个部门有独立小金库(私有线程堆栈 )。科技园区有很多共享设备(充电桩)区域(共享堆区域 ),对共享设备资源进行争夺(资源抢夺 ),使用同步机制解决资源抢夺。

同步机制
  • 互斥锁(Mutex):
    • 保证同一时间只有一个线程访问共享资源
    • 类似"部门借用设备需登记"的机制
  • 信号量(Semaphore):
    • 控制同时访问资源的线程数量
    • 可设定最大并发访问数
  • 应用场景:
    • 多线程读写同一对象时必需
    • 确保数据修改的原子性和一致性
    • 防止竞争条件导致的数据异常
为何不能将所有代码放在主线程?

主线程(如UI线程)处理用户交互,耗时任务应放在子线程(Task)执行以避免卡顿,多线程可提升程序效率。


(以上2026.1.8晚上用时2h完成,为基础部分,跳过变量类型介绍,下班速刷)

相关推荐
flysh0518 小时前
关于C#编程中的async / await关键字
开发语言·c#
m5655bj18 小时前
使用 C# 将 RTF 文档转换为 PDF 格式
pdf·c#
李建军1 天前
界止签章宗地号替换工具
c#
qq_425263321 天前
.net开发框架和语言
c#
武藤一雄1 天前
C# 关于多线程如何实现需要注意的问题(持续更新)
windows·后端·microsoft·c#·.net·.netcore·死锁
flysh051 天前
C# 架构设计:接口 vs 抽象类的深度选型指南
开发语言·c#
flysh051 天前
C# 中类型转换与模式匹配核心概念
开发语言·c#
故事不长丨1 天前
C#字典(Dictionary)全面解析:从基础用法到实战优化
开发语言·c#·wpf·哈希算法·字典·dictionary·键值对
wtsolutions1 天前
Sheet-to-Doc占位符系统详解:让数据自动填入Word指定位置
开发语言·c#