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 ...
随机推荐
- Django(44)drf序列化源码分析(1)
序列化与反序列化 一般后端数据返回给前端的数据格式都是json格式,简单易懂,但是我们使用的语言本身并不是json格式,像我们使用的Python如果直接返回给前端,前端用的javascript语言 ...
- DelayQueue延迟队列原理剖析
DelayQueue延迟队列原理剖析 介绍 DelayQueue队列是一个延迟队列,DelayQueue中存放的元素必须实现Delayed接口的元素,实现接口后相当于是每个元素都有个过期时间,当队列进 ...
- 微信架构 & 支付架构(上)
微信架构 & 支付架构(上) 一. 微信和支付宝对比 这两者现在已经占领了移动支付的90%市场,支付形式也都大抵相同,只是在实现细节上略微不同.这里之所以要专门对比,是因为有些接口的不同在后边 ...
- CUDA 9中张量核(Tensor Cores)编程
CUDA 9中张量核(Tensor Cores)编程 Programming Tensor Cores in CUDA 9 一.概述 新的Volta GPU架构的一个重要特点是它的Tensor核,使T ...
- 分布式深度学习DDL解析
分布式深度学习DDL解析 一.概述 给一个庞大的GPU集群,在实际的应用中,现有的大数据调度器会导致长队列延迟和低的性能,该文章提出了Tiresias,即一个GPU集群的调度器,专门适应分布式深度学习 ...
- 分布式 redis 延时任务 基于 springboot 示例
Lilishop 技术栈 官方公众号 & 开源不易,如有帮助请点Star 介绍 官网:https://pickmall.cn Lilishop 是一款Java开发,基于SpringBoot研发 ...
- Java学习——强调一下编程风格
讲完了Java的基础语法,大家就可以编写简单的程序代码了,这里有必要强调一下编程风格. 代码风格虽然不影响程序的运行,但对程序的可读性却非常重要.自己编写的程序要让别人看懂,首先在排版方面要非常注意. ...
- csp-s模拟测试52-53
留坑.... 改完题再说吧. 留坑....最近考得什么鬼??模拟53T1 u(差分) 一道差分题????然而考场没有想到如何维护斜率上的差分,事后经miemeng和cyf的生(xuan)动(xue)讲 ...
- ES7扩展
前一段时间小编一直在更新javascript es6版本的部分新语法和新特性,鉴于现在js一直在更新,接下来小编将和大家一起进步,一块探究js的新特性.今天小编就和大家一起来看看es7更新的语法和新特 ...
- win10下简单截图
win10 下面可以 win+shift+s 拖动截图,个人感觉是最简单的