【Visual Studio系列教程】如何在 VS 上编程?

上一篇博客中,我们介绍了《什么是 Visual Studio?》。本文,我们来看第2篇《如何在 VS 上编程?》。阅读本文大约10 分钟。我们会向文件中添加代码,了解 Visual Studio 编写、导航和了解代码的简便方法。

本文假定:你已熟悉编程语言, 如 Python 或 C#,或 C++。如果不熟悉,建议首先简单学习其中一个编程语言。

创建新代码文件

先创建一个新文件并向其添加一些代码。

  1. 打开 Visual Studio。 按 Esc 或单击“开始”窗口中的“继续但无需代码”以打开开发环境。

  2. 在菜单栏上的“文件”菜单中,选择“新建”>“文件”。

  3. 在“新建文件”对话框的“常规”类别中,选择“Visual C# 类”,然后选择“打开” 。

在编辑器中,就会打开主干为 C# 类的新文件。 (请注意,我们无需创建完整的 Visual Studio 项目来获取代码编辑器提供的某些益处,仅需一个代码文件即可!)

使用代码片段

Visual Studio 提供了实用的代码片段,可用于快速方便地生成常用代码块。

含义解释:代码片段(Code Snippets),是预定义的代码模板。包含常见的编程结构,如类定义、方法定义、循环、条件语句等,开发者可以创建自己的代码片段,以适应特定的需求。自定义代码片段可以通过 XML 文件定义,并导入到 Visual Studio 中使用。

有什么用?旨在帮助开发者,快速插入常见的代码结构或样板代码,以提高编程效率和代码一致性。使用代码片段,可以减少手动编写重复性代码的时间,让开发者专注于较为复杂的逻辑和功能实现。

支持语言:Visual Studio 中的代码片段,可以用于多种编程语言,包括 C#、Visual Basic 和 C++。

插入方式:在 Visual Studio 中,可以通过快捷键、上下文菜单或代码片段管理器来插入代码片段。例如,在 C# 中,输入 prop 然后按下 Tab 键两次,可以生成一个属性定义的代码片段。

下面,我们将 C# void Main 代码片段,添加到文件。

首先,将光标停在文件中最后的结束括号 } 的上方,并键入字符 svm。

svm 代表 static void Main;Main() 方法是 C# 应用程序的入口点。

随即将出现一个弹出对话框,其中包含有关 svm 代码片段的信息。

然后,按 Tab 两次,插入代码片段。你会看到 static void Main() 方法签名被添加到文件。

对于不同编程语言,可用的代码片段不同。 依次选择“编辑”>“IntelliSense”>“插入代码片段”。

然后选择语言的文件夹,点击tab键,回车,即可查看该语言的可用代码片段 。 对于 C#,该列表如下所示:

该列表包含:用于创建类、构造函数、for 循环、if 或 switch 语句等的代码片段。

为代码添加注释

工具栏是 Visual Studio 菜单栏下的一行按钮,有助于提高编码效率。

例如,可以切换 IntelliSense 完成模式(IntelliSense 是一种编码辅助工具,可显示匹配方法列表以及其他内容),增加或减少行缩进,或标注出不想编译的代码。 在本部分中,我们将标注出部分代码。

首先,将以下代码粘贴到 Main() 方法主体中。

// _words is a string array that we'll sort alphabetically
string[] _words = {"the","quick","brown","fox","jumps"
};string[] morewords = {"over","the","lazy","dog"
};IEnumerable<string> query = from word in _wordsorderby word.Lengthselect word;

由于,我们没有使用 morewords 变量【但稍后可能会用到】,所以,我们不想彻底删除它。

那我们就为这些行,加上注释。

选择整个 morewords 的定义,直到结束分号,然后选择工具栏上的“为选定行添加注释”。

如果想要使用键盘,请按 Ctrl+K, Ctrl+C 。

可以看到,C# 注释字符 // 添加到了每个所选行的开始处,为代码添加了注释。

折叠代码块

我们不想看到生成的 Class1 的空构造函数,所以,为了让代码更整洁,我们将其折叠。 在构造函数第一行的边距中选择内部带有减号的小灰色框。

如果使用键盘,也可将光标置于构造函数代码中的任意位置,然后按 Ctrl+M、Ctrl+M 。

代码块折叠到第一行,后跟省略号 (...)。 若要再次展开代码块,请单击现在带有加号的相同灰色框,或者再次按 Ctrl+M,Ctrl+M 。

此功能被称为大纲显示,在折叠长的方法或整个类时,特别有用。

查看符号定义

通过 Visual Studio 编辑器,可轻松查看类型、方法等的定义。

1种方法是:导航到包含定义的文件。例如,通过选择“转到定义”,转到引用符号的任何位置。 使用“速览定义”速度更快,不会干扰你处理文件。

我们来快速查看一下 string 类型的定义。

首先,右键单击出现的任意 string,然后选择内容菜单上的“速览定义”。 或者,按 Alt+F12 。此时,就会出现一个弹出窗口,其中包含 String 类的定义。可在弹出窗口中滚动,甚至还可从速览的代码中查看另一类型的定义。

然后,选择弹出窗口右上方的“x”小框,关闭“速览定义”窗口。

使用 IntelliSense 完成单词

在编写代码时,IntelliSense 是一个非常有价值的工具。它能够显示某个类型的可用成员、方法的不同重载以及参数的详细信息。同时,它还可以自动完成单词输入,帮助减少大量字符输入时可能出现的歧义。

接下来,我们将添加代码行,将排序后的字符串输出到控制台窗口【程序默认的输出位置】。

首先,在 query 变量下,开始键入以下代码:

foreach (string str in qu

IntelliSense 会显示有关 query 符号的“快速信息”。

若要使用 IntelliSense 文字自动完成功能插入单词 query 的剩余部分,请按 Tab。

完成后,代码块如以下代码所示。 你也可以通过输入 cw,然后按 Tab 两次生成 Console.WriteLine 代码。

重构名称

1种方法是:导航到包含定义的文件,例如,通过选择“转到定义”,转到引用符号的任何位置。 使用“ Visual Studio 的重构功能,将 _words 变量重命名为 words。

首先,我们将光标置于 _words 变量的定义上,然后从右键菜单或上下文菜单中选择“重命名”,或按 Ctrl+R,Ctrl+R 。 此时,编辑器右上角会弹出一个“重命名”对话框。

接下来,输入所需名称“words”。 请注意,查询中对 words 的引用也会自动重命名。 在按 Enter 前,请在“重命名”弹出框中选中“包含注释”复选框 。然后,按 Enter。 出现的两处 words 均被重命名,代码注释中对 words 的引用也被重命名。

下一篇,我们将介绍 第3篇 VS中常见的《项目和解决方案》。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/60208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL更换瀚高语法更换

MySQL更换瀚高语法更换 一、前言二、语句 一、前言 水一篇,mysql更换瀚高之后&#xff0c;一些需要更换的语法介绍 > 二、语句 MySQL瀚高MySQL用法瀚高用法说明ifnull(x,y)coalesce(x,y)相同相同用于检查两个表达式并返回第一个非空表达式。如果第一个表达式不是 NULL&…

论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)

一.基本信息 论文名称&#xff1a;Intrusion detection systems using longshort‑term memory (LSTM) 中文翻译&#xff1a;基于长短期记忆(LSTM)的入侵检测系统 DOI&#xff1a;10.1186/s40537-021-00448-4 作者&#xff1a;FatimaEzzahra Laghrissi1* , Samira Douzi2*, Kha…

大数据挖掘期末复习

大数据挖掘 数据挖掘 数据挖掘定义 技术层面&#xff1a; 数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中&#xff0c;提取隐含在其中、人们事先不知道的、但又潜在有用的信息的过程。 数据准备环节 数据选择 质量分析 数据预处理 数据仓库 …

等精度频率计的设计

目录 主控电路设计 频率测量与计算电路设计 顶层电路设计 功能扩展及应用 频率测量的三种方法 等精度频率计通过控制闸门信号与被测信号同步&#xff0c;消除了直接测频法中的计数误差&#xff0c;因而在被测信号频率范围内测量精度基本上是恒定的。 本节以设计能够测量信号…

Matlab使用深度网络设计器为迁移学习准备网络

迁移学习通过对预训练网络进行微调&#xff0c;使深度学习模型能在少量数据下快速适应新任务&#xff0c;类似于“举一反三”&#xff0c;而不需要从头训练。本文使用matlab自带的深度网络设计器&#xff0c;可以便捷地修改预训练网络进行迁移学习&#xff0c;通过对预训练网络…

基于yolov8、yolov5的电塔缺陷检测识别系统(含UI界面、训练好的模型、Python代码、数据集)

摘要&#xff1a;电塔缺陷检测在电力设备巡检、运行维护和故障预防中起着至关重要的作用&#xff0c;不仅能帮助相关部门实时监测电塔运行状态&#xff0c;还为智能化检测系统提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的电塔缺陷检测模型&#xf…

代理商培训新策略:内部知识库的高效运用

在竞争激烈的市场环境中&#xff0c;代理商作为企业与终端消费者之间的关键纽带&#xff0c;其专业能力和服务质量直接影响着企业的市场表现和品牌形象。因此&#xff0c;如何对代理商进行高效、系统的培训&#xff0c;以提升其业务能力和服务水平&#xff0c;成为企业亟需解决…

uniapp 相关的swiper的一些注意事项

先推荐一个一个对标pc端swiper的uniapp版本 zebra-swiper 缺点是自定义分页器不是很好处理 不知道怎么弄 优点:可以进行高度自适应 &#xff08;这个uniapp原生swiper没有 只能动态修改 采用js 或者只有几种固定高度时采用变量修改&#xff09; <swiperref"lifeMiddle…

ARM中ZI-data段和RW-data段

ARM中ZI-data段和RW-data段 1、只定义全局变量&#xff0c;不使用&#xff0c;不占用内存空间2、 定义并初始化全局变量为0 占用ZI-Data区域3、定义并初始化全局变量非0 占用RW-Data区域4、增加的是一个int8的数据为什么&#xff0c;size增加不是15、定义的全局变量为0&#xf…

jmeter--CSV数据文件设置--请求体设置变量

目录 一、示例 1、准备组织列表的TXT文件&#xff0c;如下&#xff1a; 2、添加 CSV数据文件设置 &#xff0c;如下&#xff1a; 3、接口请求体设置变量&#xff0c;如下&#xff1a; 二、CSV数据文件设置 1、CSV Data Set Config 配置选项说明 2、示例 CSV 文件内容 3、…

golang实现TCP服务器与客户端的断线自动重连功能

1.服务端 2.客户端 生成服务端口程序: 生成客户端程序: 测试断线重连: 初始连接成功

ssm148基于Spring MVC框架的在线电影评价系统设计与实现+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;在线电影评价系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本在线电影评价系…

DAY1 网络编程(TCP客户端服务器)

作业&#xff1a; TCP客户端服务器。 server服务器代码&#xff1a; #include <myhead.h> #define IP "192.168.110.52" #define PORT 8886 #define BACKLOG 20 int main(int argc, const char *argv[]) {int oldfdsocket(AF_INET,SOCK_STREAM,0);//IPV4通信…

基于arduino 用ESP8266获取实时MAX30102 血氧数据动态曲线显示在网页上

基于arduino 用ESP8266获取实时MAX30102 血氧数据动态曲线显示在网页上 原理&#xff1a; ESP8266获取MAX30102 血氧数据&#xff08;R,IR,G的值&#xff09;发送到路由器局域网内&#xff0c;局域网内的手机电脑&#xff0c;访问ESP的ip地址&#xff0c;获取实时的血氧数据动…

vue3:scss引用

原文查看&#xff1a;https://mp.weixin.qq.com/s?__bizMzg3NTAzMzAxNA&mid2247484356&idx2&sn44b127cd394e217b9e3c4eccafdc0aa9&chksmcec6fb1df9b1720b7bd0ca0b321bf8a995fc8cba233deb703512560cbe451cfb1f05cdf129f6&token1776233257&langzh_CN#rd…

SrpingBoot基础

SpringBoot基本框架中重要常用的包讲解: .idea包和.mvn包框架生成不经常用 src包下主要存放前后端代码: main包下的java包存放的是后端java代码主要负责数据处理 resource包下存放的是配置资源和前端页面,其中static中存放的是前端html网页一般存放静 态资源,templates包…

Nacos实现IP动态黑白名单过滤

一些恶意用户&#xff08;可能是黑客、爬虫、DDoS 攻击者&#xff09;可能频繁请求服务器资源&#xff0c;导致资源占用过高。因此我们需要一定的手段实时阻止可疑或恶意的用户&#xff0c;减少攻击风险。 本次练习使用到的是Nacos配合布隆过滤器实现动态IP黑白名单过滤 文章…

vue-next-admin框架配置(vue)

vue-next-admin 先安装依赖 npm i 依赖, npm run dev 运行 1.配置代理 2.把他的逻辑和自己的登录判断逻辑结合(我的放下面&#xff0c;可以参考哦&#xff0c;可以直接使用&#xff0c;到时候修改登录逻辑就好)&#xff0c;别忘了引入ajxio哦 const onSignIn async () &g…

算法定制LiteAIServer视频智能分析平台工业排污检测算法智控环保监管

随着工业化进程的加快&#xff0c;环境污染问题愈加严重&#xff0c;尤其是工业排污对生态环境的影响引发了广泛关注。在此背景下&#xff0c;视频智能分析平台LiteAIServer工业排污检测算法应运而生&#xff0c;作为一种先进的智能化解决方案&#xff0c;它在监测和管理工业排…

mini-lsm通关笔记Week2Day5

项目地址&#xff1a;https://github.com/skyzh/mini-lsm 个人实现地址&#xff1a;https://gitee.com/cnyuyang/mini-lsm Summary 在本章中&#xff0c;您将&#xff1a; 实现manifest文件的编解码。系统重启时从manifest文件中恢复。 要将测试用例复制到启动器代码中并运行…