在学习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. 深入 Go 语言 defer 实现原理

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客: https://www.luozhiyun.com/archives/523 本文使用的go的源码 1.15.7 介绍 defer 执行规 ...

  2. win10家庭中文版CUDA+CUDNN+显卡GPU使用tensorflow-gpu训练模型安装过程(精华帖汇总+重新修改多次复现)

    查看安装包 pip list 本帖提供操作过程,具体操作网上有好多了,不赘述.红色字体为后来复现出现的问题以及批注 题外话: (1)python 的环境尽量保持干净,尽量单一,否则容易把自己搞晕,不知 ...

  3. setTimeout使用问题

    通常禁止使用setTimeout的情况: 1.不能用于模拟异步,有的人不熟悉异步流程,而使用setTimeout伪实现,比如设置一个 setTimeout 来等待函数执行完毕,正确做法是使用回调来处理 ...

  4. 微信架构 & 支付架构(上)

    微信架构 & 支付架构(上) 一. 微信和支付宝对比 这两者现在已经占领了移动支付的90%市场,支付形式也都大抵相同,只是在实现细节上略微不同.这里之所以要专门对比,是因为有些接口的不同在后边 ...

  5. Minkowski坐标管理

    Minkowski坐标管理 坐标键 classMinkowskiEngine.CoordsKey(D) __init__(D) 初始化self. See help(type(self))有关准确的签名 ...

  6. 共享CUDA内存

    共享CUDA内存 进程间共享 此功能仅限于Linux. 将设备阵列导出到另一个进程 使用CUDA IPC API,可以与同一台计算机上的另一个进程共享设备阵列.为此,请使用.get_ipc_handl ...

  7. PyTorch神经网络集成技术

    PyTorch神经网络集成技术 create_python_neuropod 将任意python代码打包为一个neurood包. create_python_neuropod( neuropod_pa ...

  8. ASIC设计-终极指南

    ASIC设计-终极指南 ASIC Design – The Ultimate Guide ASIC设计-终极指南 ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解 ...

  9. halcon——缺陷检测常用方法总结(光度立体)

    引言 机器视觉中缺陷检测分为一下几种: blob+特征(官方示例surface_scratch.hdev) blob+差分+特征(官方示例pcb_inspection.hdev) 光度立体 特征训练 ...

  10. 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代

    Linkerd 提供了许多功能,如:自动 mTLS.自动代理注入.分布式追踪.故障注入.高可用性.HTTP/2 和 gRPC 代理.负载均衡.多集群通信.重试和超时.遥测和监控.流量拆分(金丝雀.蓝/ ...