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完成,为基础部分,跳过变量类型介绍,下班速刷)

相关推荐
心蓝无敌13 小时前
攻克Avalonia Dock布局中WebView等原生控件无法停靠的难题
c#·visual studio·avalonia·avalonia dock
guygg8815 小时前
C# 监听数据库数据变化(SqlDependency 实现)
数据库·oracle·c#
爱炸薯条的小朋友17 小时前
C#由窗体原子表溢出造成的软件闪退,根本原因补充
开发语言·c#·wpf
我是苏苏18 小时前
C#基础:Winform桌面开发中自定义组件UI、属性及事件
服务器·数据库·c#
2401_8530878819 小时前
Confluence 替代落地复盘:存量数据迁移、权限重构、信创适配踩坑总结
开发语言·重构·c#
曹牧19 小时前
C#:DataGridView控件中展示JSON内容
开发语言·c#·json
He少年19 小时前
【AI路径代理与业务接入 — 成功失败感悟】
人工智能·c#
爱炸薯条的小朋友19 小时前
C#的详细应用和讲解池化为什么能提升 OpenCvSharp / Mat 的整体效率
开发语言·opencv·c#
大空大地20261 天前
C#高级语法总结
开发语言·c#
周杰伦fans2 天前
C# AutoCAD 二次开发极简入门:从环境搭建到高效实战
开发语言·c#