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 ...
随机推荐
- idea 使用Springboot 编译报错
报错信息如下 Argument for @NotNull parameter 'url' of org/jetbrains/jps/model/impl/JpsUrlListImpl.addUrl m ...
- error – Public key for *.rpm is not installed (--nogpgcheck)
docker容器删除的东西比较多,有很多东西都没有,配置上源后发现有也问题 第一是源的选择不对应系统版本,第二是找不到gpgcheck文件 如果一时半会找不到gpgchenck file,使用 --n ...
- Arduino+AS608指纹锁避坑记
Arduino+AS608指纹锁避坑记 .title { text-align: center; margin-bottom: 0.2em } .subtitle { text-align: cent ...
- 20192113 2020-2021-2 《Python程序设计》实验三报告
20192113 2020-2021-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...
- Java必会之多线程
一.线程的基本知识 1.1 线程知识 进程和线程的关系和区别 线程: 线程是进程的基本执行单元,进程想要执行任务,必须要有线程.程序启动默认开启一条线程,这个线程被称为主线程. 进程: 进程是指在系统 ...
- SLAM的通用框架:GSLAM
SLAM的通用框架:GSLAM GSLAM: A General SLAM Framework and Benchmark 论文链接: http://openaccess.thecvf.com/con ...
- redis常用命令练习
redis-server redis-cli select 0-15 redis key: string\hash\list\set\sortedset 1.增删改查... keys * 所有key ...
- Spring Cloud系列(一):服务注册中心
一.Spring Cloud简介 Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线).分布式系统的协调导致了样 ...
- 阿里面试挂了,就因为面试官说我Spring 事务管理(器)不熟练?
前言 事务管理,一个被说烂的也被看烂的话题,还是八股文中的基础股之一.但除了八股文中需要熟读并背诵的那些个传播行为之外,背后的"为什么"和核心原理更为重要. 写这篇文章之前,我 ...
- XML文件存在中文注释报错问题( 3 字节的 UTF-8 序列的字节 3 无效)
今天在做mybatis项目的时候,给映射文件添加了中文注释后,程序就报错.把中文注释删除后,程序又可以正常执行.解决方法在下文提到. 我的xml映射文件如下: <?xml version=&qu ...