C# 8.0和.NET Core 3.0高级编程 分享笔记一:C#8.0与NET Core 3.0入门
在学习C#相关知识的过程中,我们使用Visual Studio Code来入门整个C#。
一、安装Visual Studio Core环境
通过https://code.visualstudio.com/Download下载Visual Studio Code并安装。
我租房子的地方安装的是电信网发现无法访问Github和无法下载Visual Studio Code。
1)下载Visual Studio
无法下载的,替换第一个下载链接的az764295.vo.msecnd.net为vscode.cnd.azure.cn就可以下载了。
2)从以下链接下载并安装,NET Core SDK:https://www.microsoft.com/net/download
3)启动Visual Studio Code 在菜单的View=》Extensions中搜索C#并安装。
其他扩展信息:
扩展 | 说明 |
C# for Visual Studio Code ms-vscode.csharp | 提供C#的编辑支持,包括语法高亮、智能感知、Go toDefinition、查找所有引用、所欲NET Core(CoreCLR)的调试支持,以及在Windows、macOS和Linux中对poject.json和.csproj项目的支持。 |
C# XML Documentation Comments k-kato.docomment | 为Visual Studio Code 生产XML文档注释 |
C# Extensions jchannoncsharpextensions | 添加C#类,添加C#接口,从构造函数中添加字段和属性,以及从属性中添加构造函数 |
REST Client humao。rest-client | 发送HTTP请求并在Visual Studio Code中直接查看响应 |
ILSpy.NET Decompiler icsharpcode.ilspy-vscode | 反编译MSIL程序集-支持.NET框架、.NET Core和.NET Standard |
SharpPad jmazouri.sharppad | 能够轻松检查代码的结果,工作原理类似于独立的工具,如LinqPad和RoslynPad |
二、了解相关的知识
1)理解中间语言 dotnet CLI工具使用的C#编译器(名为Roslyn)会将C#源代码转换成中间语言(Intermediate Language,IL)代码,并将IL存储在程序集(DLL或EXE文件)中。IL代码语句就像汇编语言指令,由.NET Core的虚拟机CoreCLR执行。
在运行时,CoreCLR从程序集中加载IL代码,再由即时(JIT)编译器将IL代码编译成本机CPU指令,最后有机器上的CPU执行,以上这个散步编译过程带来的好处是,微软能够为Linux、macOS和Windows创建CLR。由于第二个编译过程,相同的IL代码会到处运行,这将为本地操作系统和CPU指令集生成代码。
不管源代码是哪种语言编写的,例如C#或者Visual Basic或F#,所有的.NET应用程序都会为存储在程序集中的指令使用IL代码。使用微软和其他公司提供的反汇编工具(比如.NET 反编译工具ILSpy)可以打开程序集并显示IL代码。
2)了解.NET Native
.NET Native 用于将C#代码提前(Ahead of Time,AoT)编译成本机CPU指令,而不是使用CLR编译IL代码,以后再实时编译成本地代码。NET Native提高了执行速度,降低了应用程序的内存占用,因为本机代码是在构建时生成的,然后部署出去,而不是部署IL代码。
有关更多.NET Native信息:https://github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md。
三、使用Visual Studio Code 编写代码
现在我们开始编写代码:这里注意上面安装完C#插件后需要重启Visual Studio Code 才能正确的创建项目
1)启动Visual Studio Code。
2)依次点击File=》Open folder。
3)在打开的对话框中导航到你想存放项目的目录。
4)单击New Folder按钮,将文件夹命名为Code。
5)在Code文件夹中,创建名为Chapter01的新文件夹。
6)在Chapter01文件夹中,创建名为HelloCS的新文件夹。
7)选择HelloCS文件夹,单击SelectFolder。
8)导航到View=》Terminal。
9)在终端输入dotnet new console。
10)执行后我们看到dotnet命令行工具在当前文件夹中创建了一个新的Console Application项目,资源管理器中显示了创建两个文件HelloCS.csproj和Program.cs。
11)双击左侧的Program.cs文件,如果安装了C#扩展时没用下载并安装C#的依赖项,Visual Studio Code 将会提示下载并安装它们,比如OmniSharp、Razor语言服务器和,NET Core 调试器。
12)如果出现这个警告,点击YES。过一会会出现名为.vscode的文件夹,这些将在调试时使用。
13)我们修改Program.cs中的Console.WriteLine("Hello World!"); 修改为Console.WriteLine("Hello C#!");
14)导航到File=》开启Auto Save。
15)导航到View=》Terminal输入dotnet run执行。我们看到控制台输出了Hello C#!
寻求帮助
1)阅读微软文档
https://docs.microsoft.com/
2)获取dotnet工具的帮助
在终端输入dotnet help new
在命令行中输入dotnet new console -h
3)在变量类型上使用F12跳转到类的定义。
我创建了一个C#相关的交流群。用于分享学习资料和讨论问题。欢迎有兴趣的小伙伴:QQ群:542633085
C# 8.0和.NET Core 3.0高级编程 分享笔记一:C#8.0与NET Core 3.0入门的更多相关文章
- C# 8.0和.NET Core 3.0高级编程 分享笔记二:编程基础第一部分
基础部分被我分为了2篇,因为实在太多了,但是每一个知识点我都不舍得删除,所以越写越多,这一篇博客整理了4个夜晚,内容有点多建议慢慢看.本章涵盖以下主题: 介绍C# 理解C#的基础知识 使用变量 处理空 ...
- C# 8.0和.NET Core 3.0高级编程 分享笔记三:控制流程和转换类型
控制流程和转换类型 本章的内容主要包括编写代码.对变量执行简单的操作.做出决策.重复执行语句块.将变量或表达式值从一种类型转换为另一种类型.处理异常以及在数值变量中检查溢出. 本章涵盖以下主题: 操作 ...
- C# 8.0和.NET Core 3.0高级编程 分享笔记二:编程基础第二部分
这一篇是接上一篇笔记的第二部分. 2.5深入研究控制台应用程序 前面创建并使用了基本的控制台应用程序,下面更深入地研究它们. 控制台应用程序是基于文本的,在命令上运行的.它们通常执行需要编写脚本的简单 ...
- .Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'.
.Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible wi ...
- C# 6 与 .NET Core 1.0 高级编程 - 37 章 ADO.NET
译文,个人原创,转载请注明出处,有不对的地方欢迎指出与交流. 英文原文:Professional C# 6 and .NET Core 1.0 - 37 ADO.NET --------------- ...
- C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(上)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...
- C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...
- C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(上)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(上)),不对的地方欢迎指出与交流. 章节出自<Professional C ...
- C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(下)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(下)),不对的地方欢迎指出与交流. 章节出自<Professional C ...
随机推荐
- 深入 Go 语言 defer 实现原理
转载请声明出处哦~,本篇文章发布于luozhiyun的博客: https://www.luozhiyun.com/archives/523 本文使用的go的源码 1.15.7 介绍 defer 执行规 ...
- win10家庭中文版CUDA+CUDNN+显卡GPU使用tensorflow-gpu训练模型安装过程(精华帖汇总+重新修改多次复现)
查看安装包 pip list 本帖提供操作过程,具体操作网上有好多了,不赘述.红色字体为后来复现出现的问题以及批注 题外话: (1)python 的环境尽量保持干净,尽量单一,否则容易把自己搞晕,不知 ...
- setTimeout使用问题
通常禁止使用setTimeout的情况: 1.不能用于模拟异步,有的人不熟悉异步流程,而使用setTimeout伪实现,比如设置一个 setTimeout 来等待函数执行完毕,正确做法是使用回调来处理 ...
- 微信架构 & 支付架构(上)
微信架构 & 支付架构(上) 一. 微信和支付宝对比 这两者现在已经占领了移动支付的90%市场,支付形式也都大抵相同,只是在实现细节上略微不同.这里之所以要专门对比,是因为有些接口的不同在后边 ...
- Minkowski坐标管理
Minkowski坐标管理 坐标键 classMinkowskiEngine.CoordsKey(D) __init__(D) 初始化self. See help(type(self))有关准确的签名 ...
- 共享CUDA内存
共享CUDA内存 进程间共享 此功能仅限于Linux. 将设备阵列导出到另一个进程 使用CUDA IPC API,可以与同一台计算机上的另一个进程共享设备阵列.为此,请使用.get_ipc_handl ...
- PyTorch神经网络集成技术
PyTorch神经网络集成技术 create_python_neuropod 将任意python代码打包为一个neurood包. create_python_neuropod( neuropod_pa ...
- ASIC设计-终极指南
ASIC设计-终极指南 ASIC Design – The Ultimate Guide ASIC设计-终极指南 ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解 ...
- halcon——缺陷检测常用方法总结(光度立体)
引言 机器视觉中缺陷检测分为一下几种: blob+特征(官方示例surface_scratch.hdev) blob+差分+特征(官方示例pcb_inspection.hdev) 光度立体 特征训练 ...
- 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代
Linkerd 提供了许多功能,如:自动 mTLS.自动代理注入.分布式追踪.故障注入.高可用性.HTTP/2 和 gRPC 代理.负载均衡.多集群通信.重试和超时.遥测和监控.流量拆分(金丝雀.蓝/ ...