C# 入门—实现 Hello, World!

目录

一、.net 平台与.NET Framework框架

.NET Framework的构成

CLR:公共语言运行库

FCL:框架类库

WinForms

ASP.NET

ADO.NET

WPF

WCF

WF

LINQ

Entity Framework

Parallel LINQ

 二、.net 能干什么 .net 两种交互模式

.net 能干什么

.net 两种交互模式

三、C# 发展史与功能

四、使用 VS Code 开发 C# 程序

五、C# 与 Java 之间的区别

六、实现 Hello, World!

操作步骤:

C# 程序结构

1) using System;

2) namespace c.biancheng.net

3) class Program

4) static void Main(string[] args)

5) /*第一个C#程序*/

6) Console.WriteLine("Hello World!");

7) Console.ReadKey();

一、.net 平台与.NET Framework框架

下载 .NET(Linux、macOS 和 Windows) (microsoft.com)

.NET 简介 - .NET | Microsoft Learn

        C# :一种编程语言,可以开发基于.net平台的应用.net一般指.Net Framework框架.一种平台,一种技术。

        .Net Framework 是一个平台,它提供了一个跨语言的统一编程环境。而 C# 是一种在 .Net Framework 平台上使用的编程语言。目前能在 .Net Framework 平台上使用的开发语言有很多,例如 Visual Basic .NET、Python、J#、Visual C++.NET 等等,但使用最多的还是 C#。

.NET Framework的构成

.NET Framework 主要由四个部分构成,如下所示:

  • 公共语言运行库(CLR);
  • 框架类库(FCL);
  • 核心语言(WinForms、ASP.NET 和 ADO.NET);
  • 其他模块(WCF、WPF、WF、Card Space、LINQ、Entity Framework、Parallel LINQ、Task Parallel Library 等)。

CLR:公共语言运行库

CLR 全称为“Common Language Runtime”,它为 .NET 应用程序提供了一个托管的代码执行环境(类似 Java 中的虚拟机),是整个 .NET 框架的核心。实际上 CLR 是驻留在内存里的一段代码,负责程序执行期间的代码管理工作,例如内存管理、线程管理、安全管理、远程管理、即时编译等。下图中展示了 CLR 的组成: 

关于上图中所示各个部分的说明,如下所示:

  • Base Class Library Support(基础类库):一个类库,为 .NET 应用程序提供了一些类;
  • Thread Support(线程支持):用来管理多线程应用程序的并行执行;
  • COM Marshaler(COM 封送处理程序):提供 COM 对象与应用程序之间的通信;
  • Type Checker(类型检查器):检查应用程序中使用的类型,并验证它们是否与 CLR 提供的标准类型匹配;
  • Code Manager(代码管理器):在程序运行时管理代码;
  • Garbage Collector(垃圾回收器):释放未使用的内存,并将其分配给新的应用程序;
  • Exception Handler(异常管理器):在程序运行时处理异常,避免应用程序运行失败;
  • Class Loader(类加载器):在运行时加载所有的类。

FCL:框架类库

FCL 全称为“Framework Class Library”,它是一个标准库,其中包含了成千上万个类,主要用于构建应用程序。FCL 的核心是 BCL(Base Class Library:基础类库),BCL 提供了 FCL 的基本功能。FCL 的基本组成如下所示:

WinForms

WinForms 是 Windows Forms 的简称,它是一种 .NET Framework 的智能客户端技术,用来开发可以在我们电脑中运行的应用程序,我们经常使用的记事本就是使用 WinForms 技术开发的。

ASP.NET

ASP.NET 是一个微软设计和开发的 Web 框架,于 2002 年 1 月首次发布,ASP.NET 中完美的集成了 HTML、CSS 和 JavaScript。可以使用 ASP.NET 来开发网站、Web 应用程序和 Web 服务。

ADO.NET

ADO.NET 一个是 .Net Framework 的模块,由可用于连接、检索、插入和删除数据的类组成,主要用来开发能够与 SQL Server、Oracle 等数据库进行交互的应用程序。

WPF

WPF 全称为“Windows Presentation Foundation”,是微软推出的基于 Windows 的用户界面框架,主要用来设计 Windows 应用程序的用户界面。WPF 以前也叫“Avalon”,集成在 .NET Framework 中,2006 发布的 .NET Framework 3.0 是最早支持 WPF 的。

WCF

WCF 全称为“Windows Communication Foundation”,是由微软开发的支持数据通信的应用程序框架,中文翻译为 Windows 通讯开发平台。与 WPF 相同,WCF 最早也是集成在 .NET Framework 3.0 中,WCP、WPF 和 WF 被统称为新一代 Windows 操作系统以及 WinFX(Windows Vista 的托管代码编程模型)的三个重大应用程序开发类库。

WCF 整合了 Windows 通讯中的 .net Remoting、WebService、Socket 机制,并融合了 HTTP 和 FTP 的相关技术,因此尤其适合 Windows 平台上分布式应用的开发。

WF

WF 全称为“Windows Workflow Foundation”,是微软提供的一项技术,其中提供 API、进程内工作流引擎和可重新托管的设计器,用来将长时间运行的进程实现为 .NET 应用程序中的工作流。

LINQ

LINQ 技术在 2007 年跟随 .NET Framework 3.5 一同发布,其全称为“Language Integrated Query”,是微软的一项技术,新增了一种自然查询的 SQL 语法到 .NET Framework 的编程语言中,当前支持 C# 以及 Visual Basic .NET 语言。

Entity Framework

Entity Framework 是一个基于 ORM 的开源框架,可以和使用 .NET 对象的数据库一起使用。它可以减轻程序员在处理数据库方面的工作,是微软推荐使用的处理数据库的技术。

Parallel LINQ

Parallel LINQ 也叫 PLINQ,是对 LINQ 技术的并行实现,PLINQ 将 LINQ 语法的简洁和可靠性与并行编程的强大功能结合在一起,大大提高了使用 LINQ 时的运行速度。

除了上述特性和库之外,.NET 中包括一些其他的 API 和模型来改进或者增强 .NET 框架,例如在 .NET 4.5 中添加了基于任务的异步模型等等。

 二、.net 能干什么 .net 两种交互模式

.net 能干什么

1、.net开发的桌面应用程序叫桌面应用程序Winform应用程序
2、Internet应用程序 ASP.NET

(.net开发的internet应用程序叫ASP.NET应用程序)比如:msdn,csdn,携程,招商银行,证券之星,当当网,京东、汽车之家等。

3、手机开发(.net可以做手机开发)
4、Unity3D 游戏开发或者虚拟现实 

.net 两种交互模式

1、C/S:客户机  (Client)/服务器模式(Server)  如:ag(C/S是ClientServer的缩写。客户端需要安装专用的客户端软件。)
2、B/S:浏览器  (Browser)/服务器模式(Server)(B/S是Brower/Server的缩写,客户机上只要安装一个浏览器关于B/S和C/S的区别在下面备注中有

三、C# 发展史与功能

 以下是 C# 的一些重要功能的列表:

  • 布尔条件;
  • 自动垃圾回收;
  • 标准库;
  • 组件版本;
  • 属性和事件;
  • 委托和时间管理;
  • 易于使用的泛型;
  • 索引器;
  • 条件编译;
  • 简单的多线程;
  • LINQ 和 Lambda 表达式;
  • 集成 Windows。

借助 C# 编程语言,我们可以开发不同类型且安全可靠的应用程序,例如:

  • 桌面应用程序;
  • 网络应用程序;
  • 分布式应用程序;
  • Web 服务应用程序;
  • 数据库应用程序等。

四、使用 VS Code 开发 C# 程序

总结起来,就是IDE 更重,调试能力也更强,但VS code 更轻量,更容易上手。

五、C# 与 Java 之间的区别

六、实现 Hello, World!

操作步骤:

C# 程序结构

一个 C# 程序主要包括以下几个部分:

  • 命名空间声明;
  • 一个类(class);
  • 类方法;
  • 类属性;
  • 一个 Main 方法;
  • 语句和表达式;
  • 注释。

using System;namespace c.biancheng.net
{class Program{static void Main(string[] args){/*第一个C#程序*/Console.WriteLine("Hello World!");Console.ReadKey();}}
}
1) using System;

using 关键字用来在程序中引入 System 命名空间,一个程序中可以有多个 using 语句。

2) namespace c.biancheng.net

namespace 关键字用来声明一个命名空间,“c.biancheng.net”则是命名空间的名字。命名空间是类的集合,上面代码中名为“c.biancheng.net”的命名空间中包含了一个名为“Program”的类。

3) class Program

class 关键字用来定义一个类,“Program”则是类的名为,类中通常用来存放程序中要使用的数据和函数(也叫方法)。

4) static void Main(string[] args)

此行代码中,Main 为定义的函数名称,Main 函数是整个 C# 程序的入口,其中包含了程序运行时需要执行的操作。static 和 void 都是用来修饰 Main 函数的关键字,具体含义后面我们会详细介绍。

5) /*第一个C#程序*/

这是程序的注释,当程序运行时被/* */包裹的内容将被编译器忽略,不会执行。注释主要用来对我们所写的代码进行说明。

6) Console.WriteLine("Hello World!");

此行代码用来在命令行窗口中输出“Hello World!”。WriteLine 是 System 命名空间中定义的 Console 类里面的方法,用来输出一些消息。

7) Console.ReadKey();

此行代码是针对 VS.NET 用户的,它会使程序进入等待状态,敲击键盘上的任意一个按键即可让程序继续运行。之所以需要这行代码,是因为命令行窗口会在程序运行结束后自动关闭,这会导致我们想要输出的内容一闪而过,加入此行代码则可以避免这种情况。

另外,还有以下几点需要注意:

  • C# 区分大小写;
  • 所有语句和表达式都必须以英文的分号;结尾;
  • 程序从 Main 函数开始执行;
  • 与 Java 不同,程序文件名可以与类名不同;
  • 代码中出现的{}都是成对出现的,用来标记代码块,{ }中包裹的代码可以看作是一个整体。

 参考:.NET Tutorial | Hello World in 5 minutes (microsoft.com)

使用Visual Studio 则是:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/364938.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优化模型验证30:多车场车辆路径问题模型及Gurobipy验证

目录 1 数学模型 1.1 用到的符号集合 1.2 模型公式 2 模型验证代码 2.1 Gurobipy代码 2.2 结果可视化 多车场车辆路径问题的定义:大型的物流公司拥有多个车场,而每个车场都有若干车辆用于配送,决策者需要根据客户的所在位置,将客户分配到合适的车场和车辆中。 1 数学模…

c++静态成员变量和静态成员函数

1)C入门级小知识,分享给将要学习或者正在学习C开发的同学。 2)内容属于原创,若转载,请说明出处。 3)提供相关问题有偿答疑和支持。 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成…

华为云鲲鹏架构docker部署2048小游戏

华为云鲲鹏架构docker部署2048小游戏 1. 鲲鹏架构ESC2. 配置docker3. 上传2048镜像4. 删除容器,镜像 1. 鲲鹏架构ESC 2. 配置docker 安装dockeryum -y install docker开机启动 systemctl enable docker启动docker服务 systemctl start docker查询docker的运行版本 docker -v3…

注意力机制之ECA-Net:Efficient Channel Attention for Deep Convolutional Neural Network

论文link:link code:code 1.摘要 近年来,通道注意机制被证明在改善深层卷积神经网络(CNN)的性能方面提供了巨大的潜力。然而现有的大多数方法都致力于开发更复杂的注意模块以获得更好的性能,这不可避免地增…

1.linux操作系统CPU负载

目录 概述CPU平均负载查看平均负载结束 概述 CPU 使用率 和CPU 平均使用率。 CPU平均负载 单位时间内系统处于 [可运行状态] 和 [不可中断状态] 的平均进程数,就是平均活跃进程数,和CPU使用率并没有直接关系 可运行状态 正在使用CPU或者正等待CPU的进…

从头开始构建一个小规模的文生视频模型

OpenAI 的 Sora、Stability AI 的 Stable Video Diffusion 以及许多其他已经发布或未来将出现的文本生成视频模型,是继大语言模型 (LLM) 之后 2024 年最流行的 AI 趋势之一。 在这篇博客中,作者将展示如何将从头开始构建一个小规模的文本生成视频模型&a…

C# 实现websocket双向通信

🎈个人主页:靓仔很忙i 💻B 站主页:👉B站👈 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C# 🤝希望本文对您有所裨益,如有不足之处&#xff…

AWT的菜单组件

AWT的菜单组件 前言一、菜单组件的介绍常见的菜单相关组件常见菜单相关组件集成体系图菜单相关组件使用小要点 二、AWT菜单组件的代码示例示例一示例二实现思路 前言 推荐一个网站给想要了解或者学习人工智能知识的读者,这个网站里内容讲解通俗易懂且风趣幽默&…

如何使用sr2t将你的安全扫描报告转换为表格格式

关于sr2t sr2t是一款针对安全扫描报告的格式转换工具,全称为“Scanning reports to tabular”,该工具可以获取扫描工具的输出文件,并将文件数据转换为表格格式,例如CSV、XLSX或文本表格等,能够为广大研究人员提供一个…

MySQL详细介绍:开源关系数据库管理系统的魅力

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

理解GPT2:无监督学习的多任务语言模型

目录 一、背景与动机 二、卖点与创新 三、几个问题 四、具体是如何做的 1、更多、优质的数据,更大的模型 2、大数据量,大模型使得zero-shot成为可能 3、使用prompt做下游任务 五、一些资料 一、背景与动机 基于 Transformer 解码器的 GPT-1 证明…

容器技术-docker4

一、docker资源限制 在使用 docker 运行容器时,一台主机上可能会运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU、内存和磁盘资源。如果不对容器使用的资源进行限制,那么容器之间会互相影响,小的来说…

【Spring】DAO 和 Repository 的区别

DAO 和 Repository 的区别 1.概述2.DAO 模式2.1 User2.2 UserDao2.3 UserDaoImpl 3.Repository 模式3.1 UserRepository3.2 UserRepositoryImpl 4.具有多个 DAO 的 Repository 模式4.1 Tweet4.2 TweetDao 和 TweetDaoImpl4.3 增强 User 域4.4 UserRepositoryImpl 5.比较两种模式…

【机器学习】机器学习的重要技术——生成对抗网络:理论、算法与实践

引言 生成对抗网络(Generative Adversarial Networks, GANs)由Ian Goodfellow等人在2014年提出,通过生成器和判别器两个神经网络的对抗训练,成功实现了高质量数据的生成。GANs在图像生成、数据增强、风格迁移等领域取得了显著成果…

详细分析Springmvc中的@ModelAttribute基本知识(附Demo)

目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上,或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景: 表单…

ros笔记01--初次体验ros2

ros笔记01--初次体验ros2 介绍安装ros2测试验证ros2说明 介绍 机器人操作系统(ROS)是一组用于构建机器人应用程序的软件库和工具。从驱动程序和最先进的算法到强大的开发者工具,ROS拥有我们下一个机器人项目所需的开源工具。 当前ros已经应用到各类机器人项目开发中…

【Matlab 六自由度机器人】机器人动力学之推导拉格朗日方程(附MATLAB机器人动力学拉格朗日方程推导代码)

【Matlab 六自由度机器人】机器人动力学概述 近期更新前言正文一、拉格朗日方程的推导1. 单自由度系统2. 单连杆机械臂系统3. 双连杆机械臂系统 二、MATLAB实例推导1. 机器人模型的建立2. 动力学代码 总结参考文献 近期更新 【汇总】 【Matlab 六自由度机器人】系列文章汇总 …

Elasticsearch 第四期:搜索和过滤

序 2024年4月,小组计算建设标签平台,使用ES等工具建了一个demo,由于领导变动关系,项目基本夭折。其实这两年也陆陆续续接触和使用过ES,两年前也看过ES的官网,当时刚毕业半年多,由于历史局限性导…

大数据开发如何管理项目

在面试的时候总是 会问起项目,那在大数据开发的实际工作中,如何做好一个项目呢? 目录 1. 需求分析与项目规划1.1 需求收集与梳理1.2 可行性分析1.3 项目章程与计划 2. 数据准备与处理2.1 数据源接入2.2 数据仓库建设2.3 数据质量管理 3. 系统…

ARCGIS添加在线地图

地图服务地址:http://map.geoq.cn/ArcGIS/rest/services 具体方法: 结果展示: