在学习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入门的更多相关文章

  1. C# 8.0和.NET Core 3.0高级编程 分享笔记二:编程基础第一部分

    基础部分被我分为了2篇,因为实在太多了,但是每一个知识点我都不舍得删除,所以越写越多,这一篇博客整理了4个夜晚,内容有点多建议慢慢看.本章涵盖以下主题: 介绍C# 理解C#的基础知识 使用变量 处理空 ...

  2. C# 8.0和.NET Core 3.0高级编程 分享笔记三:控制流程和转换类型

    控制流程和转换类型 本章的内容主要包括编写代码.对变量执行简单的操作.做出决策.重复执行语句块.将变量或表达式值从一种类型转换为另一种类型.处理异常以及在数值变量中检查溢出. 本章涵盖以下主题: 操作 ...

  3. C# 8.0和.NET Core 3.0高级编程 分享笔记二:编程基础第二部分

    这一篇是接上一篇笔记的第二部分. 2.5深入研究控制台应用程序 前面创建并使用了基本的控制台应用程序,下面更深入地研究它们. 控制台应用程序是基于文本的,在命令上运行的.它们通常执行需要编写脚本的简单 ...

  4. .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 ...

  5. C# 6 与 .NET Core 1.0 高级编程 - 37 章 ADO.NET

    译文,个人原创,转载请注明出处,有不对的地方欢迎指出与交流. 英文原文:Professional C# 6 and .NET Core 1.0 - 37 ADO.NET --------------- ...

  6. C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(上)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...

  7. C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...

  8. C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(上)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(上)),不对的地方欢迎指出与交流. 章节出自<Professional C ...

  9. C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(下)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(下)),不对的地方欢迎指出与交流. 章节出自<Professional C ...

随机推荐

  1. Day029 JDK8中新日期和时间API (四)

    JDK8中新日期和时间API 其他的一些API ZoneId:该类中包含了所有的时区信息,一个时区的ID,如 Europe/Paris ZonedDateTime:一个在ISO-8601日历系统时区的 ...

  2. 圆盘时钟效果 原生JS

    圆盘时钟 旋转时钟 数字时钟 写在前面 仿荣耀手机时钟,设计的同款时钟效果 实现效果 实现原理 数字时钟 利用Date内置对象获取当下的时间,通过处理呈现在页面上 这一步获取时间是非常简单的,通过Da ...

  3. 数据流分析软件SQLFlow的工作原理

    SQLFlow是一个可视化的在线处理SQL对象依赖关系的工具,只需要上传你的SQL脚本,它可以自动分析SQL里的数据对象,包括database.schema.table.view.column.pro ...

  4. Django基本文件配置

    1.setting.py (1) ALLOWED_HOSTS = ['*'] (2) INSTALLED_APPS = ['app_name'] (3) TEMPLATES 中的   'DIRS': ...

  5. spring模板

    applicationContext <?xml version="1.0" encoding="UTF-8"?> <beans xmlns= ...

  6. Nginx_学习笔记

    Nginx_学习笔记 01-Nginx 课程介绍 02-Nginx 的简介 1. 什么是 Nginx ? 03-Nginx 相关概念(正向和反向代理) 1. 什么是反向代理?能否简要画出其示意图 2. ...

  7. 基于C语言文件操作的学生成绩管理系统

    原理 在一个班级学生成绩管理系统中,希望处理每个学生的学习情况信息,其中包括学生的学号.姓名.各科名称和成绩等并能使管理人员通过界面完成对学生信息的录入及对学生信息的录入及对数据的查找.浏览.插入.排 ...

  8. JUC 并发编程--10, 阻塞队列之--LinkedBlockingDeque 工作窃取, 代码演示

    直接上代码 class LinkedBlockingDequeDemo { // 循环是否结束的开关 private static volatile boolean flag1 = true; pri ...

  9. 【NX二次开发】通过两点创建单位向量

    源码1: //生成从起点到终点的单位向量 double douPoint_Start[3] = { 10,10,10 }; double douPoint_End[3] = { 15,16,13 }; ...

  10. String ,StringBuffer 与S tringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) ------------------------------------- ...