百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

2.1.2 C# 8.0 - 注释、代码块 与 智能提示

bigegpt 2024-11-30 18:51 4 浏览

《C# 8.0 & .NET Core 3.1 跨平台应用开发》

课前提示

从今天起,我们正式开始进入到代码编辑阶段,从易到难,逐步开始掌握 C# 这门语言。

从本节课题中,我们能看到内容非常简单。例如注释部分,甚至会让编译器鄙视我们。因为今天学习的知识完全不需要计算机理解,只是让我们编程结构更清晰、更快速,让我们能够快速轻松的看懂程序。

今天课程提要如下:

  1. 创建新的项目
  2. 注释 Comments
  3. 代码块 Blocks
  4. 智能提示 IntelliSense

创建新的项目

继续第一章结尾内容,我们已经掌握了使用 dotnet new console 命令创建控制台应用程序的方法。请各位小伙伴继续在 Ubuntu 子系统的个人主文件夹下创建新的项目。

与上次创建不同的是,本次我们会更灵活的使用 CLI 命令。省略先在 Linux 中使用 mkdir 创建项目文件夹。而是使用更简单的方法完成,具体命令如下:

dotnet new console -o "项目名称"

该命令将会自动创建以 项目名称 为目录名,并将 项目配置文件程序文件 放入该目录。

OK,请同学们使用该命令创建新项目,名称为 C2BasicCoding 的项目,如下 图1 黄箭头所示。

从 图1 红箭头所示,我们能看到,原本在 ~/CSharpProj 目录中,只有存放了一个项目目录 C1HelloWorld

从 图1 黄箭头所示,我们执行了 dotnet new console -o C2BasicCoding 后,新的 C2BasicCoding 项目创建成功。

从图1 白箭头所示,我们获得了新的项目目录。目前我们已经有两个项目分别是上一章节创建的 C1HelloWorld ,和本节创建的 C2BasicCoding 。两个项目均存放在 CSharpProj 目录中。

CSharpProj 目录的完整树形图如下(注意红、黄两箭头与矩形框的对应关系):

最后一步,在 Visual Studio Code 中 资源管理器 面板(Ctrl+Shift+E),打开 C2BasicCoding 项目文件夹。

提示:可以通过导航栏 文件 | 关闭文件夹 来关闭 C1HelloWorld 项目文件夹。

直到左侧 资源管理器 面板中列出 C2BasicCoding 项目文件,本段落工作完成,开始准备编辑 Program.cs 程序文件。

注释 Comments

注释的作用简单概括为以下两点:

注释,编译器不看、运行者看不到。注释是给开发者使用的,用来在开发阶段,给自己、同事或是开源后其他编辑源代码的小伙伴们予以提示的。编译器会跳过注释字符;程序运行阶段,执行的用户也看不到这些注释。注释分为两种:

1.单行注释

当你写完一行代码后,你可以使用双斜线 // 来增加注释,说明你本行的代码用途。程序中插入的所有双斜杠 // 开始到行末结束的字符都会被跳过,不会被编译。也就是说,一行中所有双斜杠 // 之后的字符编译器都不会识别。

01  using System;
02  // 以上引用了 System;
03  
04  namespace C2BasicCoding
05  {
06      class Program
07      {
08          static void Main(string[] args)
09          {
10              // 下发的 WriteLine 行打印语句;
11              Console.WriteLine("Hello Frank!");  // 这是由 虎巍老师 改写的输出内容,其他人请不要修改;
12          }
13      }
14  }

在 图4 中 行2、行10 都是注释语句,这两行将作为注释不会被编译器执行,直接忽略跳过。

在 图4 中 行11 双斜杠 // 之后的绿色文字将作为注释不会被编译器执行,直接忽略跳过。但 // 前面的 Console.WirteLine("Hello Frank!"); 将会被正常执行。

在Visual Studio Code中,可以通过 Ctrl+K+C 快捷键将此行设置为注释,或通过 Ctrl+K+U 移除该行的注释状态。注意:是将整行设置/移除注释双斜杠 // 。也可以使用鼠标选中多行同时操作。

2.多行注释

多行注释也可使用 /* 标记开始,*/ 标记结束。其中多行内容均被作为注释信息。示例如下:

        static void Main(string[] args)
        {
            // 下方的 WriteLine 行打印语句;
            Console.WriteLine("Hello Frank!");  // 这是由 虎巍老师 改写的输出内容,其他人请不要修改;

            /*
            下面的内容我们还没学,但好像产不多能看懂
            int x = 3;
            int y = 2;
            int z = 0;
            z = x / y;
            Console.WriteLine(z);
            请问输出结果是几?
            */
        }

在 图5 中黄色矩形框所示的 行13 至 行21,共9行,都被设置为了注释,只要在头部加 /* 尾部加 */ 即可。省去了每行前加 // 的麻烦。

最后,多说一句,Visual Studio Code 的最大的好处就是插件多。各位可以试着添加一些注释相关插件,事半功倍。

代码块 Blocks

在写作中,我们用新行来表示一个段落。在 C# 中使用花括号 { } 来表示代码块。块以一个声明开始,以指示它正在定义什么。例如,一个块可以定义一个名称空间、类、方法或语句,这些我们将在后面详细介绍。

在此,你只要知道,一对花括号 { } 容纳一段代码块即可。当然,代码块是可以嵌套的。

注意:代码块标记不是注释,编译器会识别并使用 { } ,所以不要随便加 { }。未来我们讲到作用域时再细讲。

智能提示 IntelliSense

借助 C# 扩展插件的加持,IntelliSense 实现了 C# 语法突出显示和自动完成功能,它可以为变量类型,函数定义和导入的模块提供智能完成功能。

当安装完成 C# 后,智能提示功能会根据你输入的部分语句,猜出你要输入的剩余部分。还会对你输入的功能提供智能纠错功能。

默认情况下,智能提示功能是开启的。你可以在输入以下语句后感受到它的存在:

1.当我输入 con 时,会弹出下拉列表,猜出我可能想要输入的时 Console 。虽然我输入的前三个字母有错误(con 的首字母 c 应该大写),但它会提示更正选项。当我们通过 ↑ ↓ 键选中下拉列表的某个选项时,按 Enter 键即可自动填充。

2.它会将不同的关键字或字符串标记出不同的颜色。便于我们识别。例如下图就有三种颜色用来区分:

提示:如果智能提示没出现:你可以使用 Ctrl + '空格' 来强行开启。当然你会发现,在中文 Windows 下,这个快捷键会与切换输入法冲突。建议你进行更改,更改方法非常简单,自行尝试。导航栏中 文件 | 首选项 | 键盘快捷方式 ……

当然,不用特别学习什么是智能提示,在此方面 Visual Studio Code 对比 Visual Studio 2019 还有一些差距。目前还有些不适应。总的来说,没有智能提示,我可能不会写程序了。

本课小结

总的来说,本课只是挑拣了一些简单的知识帮大家开始 C# ,后面的课程会一天比一天提升难度。我在已经尽快推进了。

相关推荐

悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)

新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...

高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源

凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...

微服务架构实战:商家管理后台与sso设计,SSO客户端设计

SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...

还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑

在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...

Seata源码—6.Seata AT模式的数据源代理二

大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...

30分钟了解K8S(30分钟了解微积分)

微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...

SpringBoot条件化配置(@Conditional)全面解析与实战指南

一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...

一招解决所有依赖冲突(克服依赖)

背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...

你读过Mybatis的源码?说说它用到了几种设计模式

学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...

golang对接阿里云私有Bucket上传图片、授权访问图片

1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...

spring中的资源的加载(spring加载原理)

最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...

Android资源使用(android资源文件)

Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...

如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)

深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...

@Autowired与@Resource原理知识点详解

springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...

java的redis连接工具篇(java redis client)

在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...