当前位置: 首页 > article >正文

C#初级教程(1)——C# 与.NET 框架:探索微软平台编程的强大组合

图片来源:

https://www.lvhang.site/docs/dotnettimeline

即梦AI - 一站式AI创作平台


一、历史发展脉络

        在早期的微软平台编程中,常用的编程语言有 Visual BasicCC++。到了 20 世纪 90 年代末,Win32 API、MFC(Microsoft Foundation Classes,微软基础类库)以及 COM(Component Object Model,组件对象模型)在软件开发中发挥着重要作用 。不过,这些技术存在一些局限性,比如开发难度较大、跨平台性差等问题。

        直到 2002 年,微软发布了第一个.NET 框架,这一框架具有多平台特性、符合行业标准且安全性高,为开发者带来了全新的开发体验。它像是一个强大的基础架构,为后续的编程工作奠定了坚实基础。


二、编程工具与生态

(一)丰富的编程工具

  1. Visual Studio:这是一款集成开发环境(IDE),它为开发者提供了一站式的开发体验。无论是创建项目、编写代码,还是调试程序,都能在这个工具中高效完成。它就像是一个功能齐全的工作间,开发者在这里可以得心应手地进行各种开发操作。

  2. .NET 兼容的编译器:包括 C#、VB.NET、F# 等编译器。这些编译器可以将不同语言编写的代码转换为可执行的程序。比如 C# 编译器,它能够把 C# 代码编译成计算机可以理解和运行的形式。

  3. 调试器:在开发过程中,代码难免会出现错误,调试器就是帮助开发者找出并解决这些错误的重要工具。它可以逐行执行代码,查看变量的值,分析程序的执行流程,让开发者快速定位问题所在。

  4. 网站开发技术:ASP.NET和 WCF(Windows Communication Foundation)在网站开发领域应用广泛。ASP.NET用于构建动态网页,WCF 则专注于创建分布式应用程序,实现不同系统之间的通信。
     

(二).NET 框架核心组件

  1. 基类库(BCL):Base Class Library,它是.NET 框架的重要组成部分,包含了丰富的类。通用基础类用于文件操作、字符串操作等;集合类可以方便地管理列表、字典等数据结构;线程和同步类为多线程编程提供支持;XML 类则帮助开发者创建、读取和操作 XML 文档。有了 BCL,开发者无需从头编写基础功能代码,大大提高了开发效率。

  2. 公共语言运行库(CLR):CLR 是.NET 框架的运行时环境,负责管理内存、处理异常、进行垃圾收集等重要任务。它就像是一个幕后管家,默默地为程序的稳定运行保驾护航。托管代码是用.NET 框架编写的代码,需要在 CLR 环境下运行;而非托管代码,像 Win32 C/C++ DLL,则不在 CLR 控制范围内。


三、编译与运行机制

(一)编译过程

        .NET 源文件可以是 C#、VB 等多种语言编写的。编译器会将这些源文件编译成程序集,程序集的形式可以是 dll 文件(动态链接库)或者 exe 文件(可执行文件)。在编译过程中,会生成 CIL(Common Intermediate Language,公共中间语言)。CIL 是一种中间表示形式,它与具体的硬件和操作系统无关,这使得.NET 程序具有更好的跨平台潜力。

(二)运行过程

        程序运行时,CLR 会发挥重要作用。首先,JIT(Just-In-Time,即时)编译器会将 CIL 代码转换成本机代码,也就是所在系统可以直接识别运行的代码。然后,CLR 会利用自身的内存管理、异常处理等功能,保证程序的稳定运行,同时还会调用操作系统服务,实现与底层系统的交互。


四、C# 的版本演化

C# 从诞生以来不断发展,每个版本都带来了令人瞩目的新特性:

  1. C# 1.0:作为初始版本,奠定了 C# 语言的基础框架,为后续发展提供了基石。

  2. C# 2.0:带来了一些重要特性,进一步丰富了 C# 的编程能力,使开发者在编写代码时有了更多选择。

  3. C# 3.0:引入了 LINQ(Language Integrated Query,语言集成查询),这一特性极大地简化了数据查询操作,让开发者可以更方便地处理各种数据源。

  4. C# 4.0:增加了命名参数和可选参数,使方法调用更加灵活,提高了代码的可读性和可维护性。

  5. C# 5.0:异步特性成为焦点,它让开发者能够更轻松地编写异步代码,提升了程序的性能和响应速度,特别是在处理 I/O 操作和网络请求时优势明显。


五.结语

        希望通过今天的分享,大家对 C# 和.NET 框架有了更深入的理解,也期待大家在未来的编程实践中充分利用它们的优势,创造出更多优秀的软件作品。

相关文章:

C#初级教程(1)——C# 与.NET 框架:探索微软平台编程的强大组合

图片来源: https://www.lvhang.site/docs/dotnettimeline 即梦AI - 一站式AI创作平台 一、历史发展脉络 在早期的微软平台编程中,常用的编程语言有 Visual Basic、C、C。到了 20 世纪 90 年代末,Win32 API、MFC(Microsoft Found…...

Mac m1 连接公司内网

1、创建VPN 1、在系统偏好设置 2、选择网络 3、进行添加 2、添加设置 1、选择VPN 2、类型选择L2TP/IPSec 3、填写服务器IP和账号 4、点击认证设置-填写密码 。然后应用 3、进行特殊配置 网上说苹果系统的问题。 1、创建命令 sudo vim /etc/ppp/options 2、添加内容-主要别…...

C++:类与对象,定义类和构造函数

#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; //如何让定义一个类 // 封装 // 1、将数据和方法定义到一起。 // 2、把想给你看的数据给你看&#xff0c;不想给你看的封装起来。 通过访问限定符来实现 class Stack { public: //1.成…...

杨校老师课堂之信息学奥赛结构体操作使用经典题集锦汇总

C基础:结构体数组综合训练 员工信息处理系统题目描述输入描述输出描述解题思路参考代码 员工信息处理系统 题目描述 在一家企业中&#xff0c;员工信息的准确性和时效性是日常人事管理工作的关键。由于企业员工数量众多&#xff0c;手动统计与更新员工信息不仅耗费大量时间&a…...

8. Flink-CDC

1. Flink-CDC的介绍 Flink-cdc主要是用来同步数据库中的数据&#xff0c;它的主要优势在于基于Flink框架直接用Flink Stream Api 或Flink SQL 直接编程&#xff0c;不需要引入第三方组件 2.Flink-CDC的使用 Flink-cdc在使用上需要注意的点 注意Flink-cdc在2.1版本之前需要导…...

Windows 权限结构和原理:深入浅出

一、什么是权限&#xff1f; 权限&#xff0c;是指在操作系统或应用程序中&#xff0c;某个对象&#xff08;如用户、程序、设备等&#xff09;对特定资源的可操作范围。具体来说&#xff0c;权限控制了一个主体&#xff08;通常是用户或应用程序&#xff09;对某个资源&#…...

Nginx环境安装

一、官网地址 Nginx官网&#xff1a;http://nginx.org/ Nginx中文网&#xff1a;https://nginx.p2hp.com/ 二、Nginx版本 mainline version 开发版本stableversion 稳定版本legacy version 历史版本 三、Windows系统安装Nginx 第一步&#xff1a;选择Windows版本&#xff0c;…...

Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言 随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型&#xff0c;凭借其强大的自然语言处理能力和丰富的知识储备&#xff0c;迅速成为业界关注的焦点。无论是文本生…...

android系统SystemServer进程启动流程分析

目录 一,SystemServer整体框架 二,SystemServer启动源码分析 2.1,重要的概念 2.2,启动入口 2.3,创建对应进程的binder 三,binder驱动和binder线程池 四,SystemServer真正启动方法 4.1 SystemServer main方法里面主要做了几件事情 1)创建SystemServiceManager管理所有的…...

【雅思博客06】Daily Life

对话 A: Honey, the house is such a mess! I need you to help me tidy up a bit. My boss and her husband are coming over for dinner, and the house needs to be spotless! B: I’m in the middle of something right now. I’ll be there in a second. A: This can’t …...

Oracle 深入理解Lock和Latch ,解析访问数据块全流程

Oracle 锁机制介绍 根据保护对象的不同&#xff0c;单实例Oracle数据库锁可以分为以下几大类&#xff1a; DML lock&#xff08;data locks&#xff0c;数据锁&#xff09;&#xff1a;用于保护数据的完整性&#xff1b; DDL lock&#xff08;dictionary locks&#xff0c;字典…...

19、《Springboot+MongoDB整合:玩转文档型数据库》

SpringbootMongoDB整合&#xff1a;玩转文档型数据库 摘要&#xff1a;本文全面讲解Spring Boot与MongoDB的整合实践&#xff0c;涵盖环境搭建、CRUD操作、聚合查询、事务管理、性能优化等核心内容。通过15个典型代码示例&#xff0c;演示如何高效操作文档数据库&#xff0c;深…...

如何基于transformers库通过训练Qwen/DeepSeek模型的传统分类能力实现文本分类任务

文章目录 模型与环境准备文档分析源码解读模型训练及推理方式进阶:CPU与显存的切换进阶:多卡数据并行训练🔑 DDP 训练过程核心步骤🚫 DDP 不适用于模型并行⚖️ DDP vs. Model Parallelism⚙️ 解决大模型训练的推荐方法🎉进入大模型应用与实战专栏 | 🚀查看更多专栏…...

Unity中一个节点实现植物动态(Shader)

1 . 核心思路就操作顶点作往复运动&#xff1b; 核心代码&#xff1a; half stage1 dot(positionOS, float3(0, 1, 0)) * _Strength; half stage2 sin(dot(positionOS, float3(1, 0, 0)) * _Strength _Time.y * _Speed); half stage3 stage1 * stage2 * float3(0.001,…...

PrimeTime:工具简介

相关阅读 PrimeTimehttps://blog.csdn.net/weixin_45791458/category_12900271.html?spm1001.2014.3001.5482 PrimeTime是PrimeTime Suite中的一个工具&#xff0c;能够执行全芯片级、门级的静态时序分析&#xff0c;这是芯片设计和分析流程中的一个关键部分。该工具通过检查…...

FFmpeg+WebSocket+JsMpeg实时视频流实现方案

之前写的使用FFmpeg Nginx HLS流媒体播放方案&#xff0c;适合对实时性要求不高的需求&#xff0c;存在延迟&#xff0c;FFmpeg需要将视频流存储到本地文件&#xff0c;而本次方案FFmpeg不需要将视频流存储到本地文件&#xff0c;而是直接将转换后的视频流&#xff08;如MJPE…...

《论系统需求分析方法》写作心得 - 系统分析师

系统需求分析方法论述 一、项目概述及本人职责 本人曾参与一项企业级客户关系管理系统&#xff08;CRM&#xff09;的开发项目&#xff0c;担任系统分析师的角色。该项目旨在为企业提供一个集客户信息管理、销售过程跟踪、客户服务支持于一体的综合管理平台&#xff0c;以提升…...

DuodooBMS源码解读之 mrp_management模块

制造管理扩展模块用户使用手册 一、模块概述 本扩展模块是基于 Odoo 18 开发的制造管理模块&#xff0c;主要为用户提供了更为强大和细致的制造管理功能。该模块添加了数量验证功能&#xff0c;即当一步工序未完成时&#xff0c;开始下一步工序&#xff0c;则下一步工序的生产…...

rust笔记8-Deref与隐式解引用强制转换

Rust 的智能指针和 Deref Trait 是 Rust 中非常重要的概念,它们使得 Rust 的引用和指针操作更加灵活和安全。下面我们将深入介绍 Deref Trait、Deref 与 &、* 运算符的关系,以及 Rust 的隐式解引用强制转换(Deref Coercion)。 1. 智能指针与 Deref Trait 智能指针(如…...

【拜读】Tensor Product Attention Is All You Need姚期智团队开源兼容RoPE位置编码

姚期智团队开源新型注意力&#xff1a;张量积注意力&#xff08;Tensor Product Attention&#xff0c;TPA&#xff09;。有点像一种「动态的LoRA」&#xff0c;核心思路在于利用张量分解来压缩注意力机制中的 Q、K、V 表示&#xff0c;同时保留上下文信息&#xff0c;减少内存…...

Docker-技术架构演进之路

目录 一、概述 常见概念 二、架构演进 1.单机架构 2.应用数据分离架构 3.应用服务集群架构 4.读写分离 / 主从分离架构 5.引入缓存 —— 冷热分离架构 6.垂直分库 7.业务拆分 —— 微服务 8.容器化引入——容器编排架构 三、尾声 一、概述 在进行技术学习过程中&am…...

用Chrome Recorder轻松完成自动化测试脚本录制

前言 入门自动化测试,录制回放通常是小白测试首先用到的功能。而录制回放工具也一直是各大Web自动化测试必然会着重提供的一块功能。 早期WinRunner、QTP这样的工具,自动化测试可以说是围绕录制回放开展的。近年像Selenium也提供有录制工具 Selenium IDE,Playwright也包含…...

python中的异常-模块-包

文章目录 异常异常的定义异常捕获语法捕获常规异常捕获指定异常捕获多个异常捕获所有异常异常else异常finally 异常传递总结 模块概念导入自定义模块及导入main方法all变量 总结 包自定义包定义pycharm中建包的基本步骤导入方式 第三方包 异常 异常的定义 当检测到一个错误时…...

【GPU驱动】OpenGLES图形管线渲染机制

OpenGLES图形管线渲染机制 OpenGL/ES 的渲染管线也是一个典型的图形流水线&#xff08;Graphics Pipeline&#xff09;&#xff0c;包括多个阶段&#xff0c;每个阶段都负责对图形数据进行处理。管线的核心目标是将图形数据转换为最终的图像&#xff0c;这些图像可以显示在屏幕…...

ssm-day06 ssm整合

从springMVC总结再回顾一下 60节 整合就是应用框架&#xff0c;并且把这个框架放到IOC容器中 web容器&#xff1a;装springMVC和controller相关的web组件 root容器&#xff1a;装业务和持久层相关的组件 子容器可以引用父容器中的组件&#xff0c;父容器不能调子容器 一个容器…...

AI 编程助手 cursor的系统提示词 prompt

# Role 你是一名极其优秀具有10年经验的产品经理和精通java编程语言的架构师。与你交流的用户是不懂代码的初中生&#xff0c;不善于表达产品和代码需求。你的工作对用户来说非常重要&#xff0c;完成后将获得10000美元奖励。 # Goal 你的目标是帮助用户以他容易理解的…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_process_options

ngx_process_options 声明在 src\core\nginx.c static ngx_int_t ngx_process_options(ngx_cycle_t *cycle); 定义在 src\core\nginx.c static ngx_int_t ngx_process_options(ngx_cycle_t *cycle) {u_char *p;size_t len;if (ngx_prefix) {len ngx_strlen(ngx_prefix);p …...

ollama如何安全卸载,解决Ollama unins000.msg is missing

春节后在本地电脑安装了Ollama的客户端&#xff0c;每次开机自启&#xff0c;影响开机速度&#xff0c;而且本地的模型不如联网的回答效果好&#xff0c;果断选择了卸载&#xff0c;但是今天卸载发现提示下方的错误。根据此文章可以解决当前的问题。 根据此文章可以解决当前的…...

网络安全设备防护原理 网络安全防护装置

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 防火墙 简介 网络层的防护设备&#xff0c;依照特殊的规则允许或者限制传输的数据通过 是由软件和硬件设备组合而成&#xff0c;在内部网和外部网之间、专用网…...

Python的那些事第二十八篇:数据分析与操作的利器Pandas

Pandas:数据分析与操作的利器 摘要 Pandas是基于Python的开源数据分析库,广泛应用于数据科学、机器学习和商业智能等领域。它提供了高效的数据结构和丰富的分析工具,能够处理结构化数据、时间序列数据以及复杂的数据转换任务。本文从Pandas的基础概念入手,深入探讨其核心…...