当前位置: 首页 > news >正文

【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中常见的《项目和解决方案》。

相关文章:

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

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

Mybatis-Plus 多租户插件属性自动赋值

文章目录 1、Mybatis-Plus 多租户插件1.1、属性介绍1.2、使用多租户插件mavenymlThreadLocalUtil实现 定义,注入租户处理器插件测试domianservice & ServiceImplmapper 测试mapper.xml 方式 1.3、不使用多租户插件 2、实体对象的属性自动赋值使用1. 定义实体类2. 实现 Meta…...

AWTK-WIDGET-WEB-VIEW 实现笔记 (4) - Ubuntu

Ubuntu 上实现 AWTK-WIDGET-WEB-VIEW 开始以为很简单&#xff0c;后来发现是最麻烦的。因为 Ubuntu 上的 webview 库是 基于 GTK 的&#xff0c;而 AWTK 是基于 X11 的&#xff0c;两者的窗口系统不同&#xff0c;所以期间踩了几个大坑。 1. 编译 AWTK 在使用 Linux 的输入法时…...

Python入门(7)--高级函数特性详解

Python高级函数特性详解 &#x1f680; 目录 匿名函数&#xff08;Lambda&#xff09;装饰器的使用生成器与迭代器递归函数应用实战案例&#xff1a;文件批处理工具 1. 匿名函数&#xff08;Lambda&#xff09;深入解析 &#x1f3af; 1.1 Lambda函数基础与进阶 1.1.1 基本…...

【数据库原理】理解数据库,基础知识

第一代&#xff1a;网状数据库&#xff1b;第二代&#xff1a;关系数据库&#xff1b;第三代&#xff1a;新一代数据库系统BigData 一、理解数据库 什么是数据&#xff1a;信息&#xff0c;对事物的存在方方式、运动状态及特征的描述。数据&#xff0c;记录信息的识别方式有数…...

VConsole——(H5调试工具)前端开发使用于手机端查看控制台和请求发送

因为开发钉钉H5微应用在手机上一直查看不到日志等&#xff0c;出现安卓和苹果上传图片一边是成功的&#xff0c;一边是失败的&#xff0c;所以找了这个&#xff0c;之前在开发微信小程序进行调试的时候能看到&#xff0c;之前没想到过&#xff0c;这次被人提点发现可以单独使用…...

论文分享 | FuzzLLM:一种用于发现大语言模型中越狱漏洞的通用模糊测试框架

大语言模型是当前人工智能领域的前沿研究方向&#xff0c;在安全性方面大语言模型存在一些挑战和问题。分享一篇发表于2024年ICASSP会议的论文FuzzLLM&#xff0c;它设计了一种模糊测试框架&#xff0c;利用模型的能力去测试模型对越狱攻击的防护水平。 论文摘要 大语言模型中…...

vmWare虚拟环境centos7安装Hadoop 伪分布式实践

背景&#xff1a;近期在研发大数据中台&#xff0c;需要研究Hadoop hive 的各种特性&#xff0c;需要搭建一个Hadoop的虚拟环境&#xff0c;本来想着使用dock &#xff0c;但突然发现docker 公共仓库的镜像 被XX 了&#xff0c;无奈重新使用vm 搭建虚拟机。 大概经历了6个小时完…...

【C++入门(一)】半小时入门C++开发(深入理解new+List+范围for+可变参数)

目录 一.深入理解new 使用格式 二.List列表 定义一个列表 迭代器 添加元素 删除元素 排序 反转序列 三.范围for 四.可变参数 std::initializer_list 可变参数模板&#xff08;variadic template&#xff09; 一.深入理解new 类似于C语言中的malloc、calloc和reallo…...

Vue 3与TypeScript集成指南:构建类型安全的前端应用

在Vue 3中使用TypeScript&#xff0c;可以让你的组件更加健壮和易于维护。以下是使用TypeScript与Vue 3结合的详细步骤和知识点&#xff1a; 1. 环境搭建 首先&#xff0c;确保你安装了Node.js&#xff08;推荐使用最新的LTS版本&#xff09;和npm或Yarn。然后&#xff0c;安…...

MATLAB和Python发射光谱

在MATLAB和Python中&#xff0c;可以使用不同的库来生成发射光谱。以下是两种语言的简单示例&#xff1a; MATLAB: % 定义波长&#xff08;nm&#xff09;和强度&#xff08;a.u.&#xff09; wavelengths linspace(300, 1000, 1000); intensity sin(wavelengths / 500);…...

IEEE(常用)参考文献引用格式详解 | LaTeX参考文献规范(IEEE Trans、Conf、Arxiv)| 期刊会议名缩写查询

期刊 ** 期刊:已正式出版&#xff08;有期卷号) ** 期刊:录用后在线访问即Early access&#xff08;无期卷号&#xff09;会议Arxiv论文 期刊 期刊:已正式出版&#xff08;有期卷号&#xff09; article{gu2024ai, title{{AI}-Enhanced Cloud-Edge-Terminal Collaborative Ne…...

第二十周:机器学习

目录 摘要 ABSTRACT 一、吴恩达机器学习exp2——逻辑回归 1、logistic函数 2、数据预处理 3、损失函数 4、梯度下降 5、设定评价指标 6、决策边界 7、正则化 二、动手深度学习pytorch——数据预处理 1、数据集读取 2、缺失值处理 3、转换为张量格式 总结 摘要…...

Elasticsearch面试内容整理-Elasticsearch 基础概念

Elasticsearch 是一个基于 Apache Lucene 的开源分布式搜索和分析引擎,提供强大的全文本搜索、实时数据分析、分布式存储等功能。以下是 Elasticsearch 的一些基础概念: 什么是 Elasticsearch? ● Elasticsearch 是一个用于全文搜索和实时分析的分布式搜索引擎。 ● 开源和可…...

机器学习算法模型系列——Adam算法

Adam是一种自适应学习率的优化算法&#xff0c;结合了动量和自适应学习率的特性。 主要思想是根据参数的梯度来动态调整每个参数的学习率。 核心原理包括&#xff1a; 动量&#xff08;Momentum&#xff09;&#xff1a;Adam算法引入了动量项&#xff0c;以平滑梯度更新的方向…...

Qt按钮类-->day09

按钮基类 QAbstractButton 标题与图标 // 参数text的内容显示到按钮上 void QAbstractButton::setText(const QString &text); // 得到按钮上显示的文本内容, 函数的返回就是 QString QAbstractButton::text() const;// 得到按钮设置的图标 QIcon icon() const; // 给按钮…...

基于xr-frame实现微信小程序的手部、手势识别3D模型叠加和石头剪刀布游戏功能

前言 xr-frame是一套小程序官方提供的XR/3D应用解决方案&#xff0c;基于混合方案实现&#xff0c;性能逼近原生、效果好、易用、强扩展、渐进式、遵循小程序开发标准。xr-frame在基础库v2.32.0开始基本稳定&#xff0c;发布为正式版&#xff0c;但仍有一些功能还在开发&#…...

基于Kafka2.1解读Consumer原理

文章目录 概要整体架构流程技术名词解释技术细节coordinatorfetcherclientconsumer#poll的主要流程 全局总览小结 概要 继上一篇讲Producer原理的文章过去已经一个多月了&#xff0c;今天来讲讲Consumer的原理。 其实源码早就读了部分了&#xff0c;但是最近工作比较忙&#x…...

深度学习:ResNet每一层的输出形状

其中 /**在输出通道数为64、步幅为2的7 7卷积层后&#xff0c;接步幅为2的3 3的最大汇聚层,与GoogLeNet区别是每个卷积层后增加了批量规范层**/ b1 nn.Sequential(nn.Conv2d(1, 64, kernel_size7, stride2, padding3),nn.BatchNorm2d(64), nn.ReLU(),nn.MaxPool2d(kernel_s…...

国内几大网络安全公司介绍 - 网络安全

Posted by zhaol under 安全 , 电信 , 评论 , 中国 中国国内的安全市场进入“战国时期”&#xff0c;启明星辰、绿盟、天融信、安氏、亿阳、联想网御、华为等战国七雄拥有雄厚的客户资源和资金基础&#xff0c;帐前皆有勇猛善战之士&#xff0c;渐渐开始统领国内安全市场的潮流…...

修改Android Studio项目配置JDK路径和项目Gradle路径的GUI工具

概述 本工具提供了一个基于Python Tkinter的图形用户界面&#xff08;GUI&#xff09;&#xff0c;用于帮助用户搜索并更新Android Studio项目中的config.properties文件里的java.home路径&#xff0c;以及workspace.xml文件中的last_opened_file_path路径。该工具旨在简化手动…...

✅DAY30 贪心算法 | 452. 用最少数量的箭引爆气球 | 435. 无重叠区间 | 763.划分字母区间

452. 用最少数量的箭引爆气球 解题思路&#xff1a;首先把原数组按左边界进行排序。然后比较[i-1]的右边界和[i]的左边界是否重叠&#xff0c;如果重叠&#xff0c;更新当前右边界为最小右边界和[i1]的左边界判断是重叠。 class Solution:def findMinArrowShots(self, points:…...

关于Redis单线程模型以及IO多路复用的理解

IO多路复用 -> redis主线程 -> 事件队列 -> 事件处理器 1.IO多路复用机制的作用&#xff1a; 操作系统的多路复用机制&#xff08;如 epoll、select&#xff09;负责监听多个文件描述符&#xff08;如客户端连接&#xff09;上的事件。 当某个文件描述符上的事件就绪…...

学习ASP.NET Core的身份认证(基于Cookie的身份认证1)

B/S架构程序可通过Cookie、Session、JWT、证书等多种方式认证用户身份&#xff0c;虽然之前测试过用户登录代码&#xff0c;也学习过开源项目中的登录认证&#xff0c;但其实还是对身份认证疑惑甚多&#xff0c;就比如登录验证后用户信息如何保存、客户端下次连接时如何获取用户…...

奇门遁甲中看债务时用神该怎么取?

奇门遁甲中看债务的用神 一、值符 值符在债务关系中可代表债权人&#xff08;放贷人&#xff09;。例如在预测放贷时&#xff0c;以值符为放贷人&#xff0c;如果值符克天乙&#xff08;借贷人&#xff09;或者天乙生值符&#xff0c;这种情况下可以放贷&#xff1b;反之&#…...

Redis 集群主要有以下几种类型

Redis 集群主要有以下几种类型&#xff1a; 主从复制模式&#xff1a; 这种模式包含一个主数据库实例&#xff08;master&#xff09;与一个或多个从数据库实例&#xff08;slave&#xff09;。客户端可以对主数据库进行读写操作&#xff0c;对从数据库进行读操作&#xff0c;主…...

使用 Axios 拦截器优化 HTTP 请求与响应的实践

目录 前言1. Axios 简介与拦截器概念1.1 Axios 的特点1.2 什么是拦截器 2. 请求拦截器的应用与实践2.1 请求拦截器的作用2.2 请求拦截器实现 3. 响应拦截器的应用与实践3.1 响应拦截器的作用3.2 响应拦截器实现 4. 综合实例&#xff1a;一个完整的 Axios 配置5. 使用拦截器的好…...

mini-lsm通关笔记Week2Day5

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

mybatis的动态sql用法之排序

概括 在最近的开发任务中&#xff0c;涉及到了一些页面的排序&#xff0c;其中最为常见的就是时间的降序和升序。这个有的前端控件就可以完成&#xff0c;但是对于一些无法用前端控件的&#xff0c;只能通过后端来进行解决。 后端的解决方法就是使用mybatis的动态sql拼接。 …...

OneToMany 和 ManyToOne

在使用 ORM&#xff08;如 TypeORM&#xff09;进行实体关系设计时&#xff0c;OneToMany 和 ManyToOne 是非常重要的注解&#xff0c;常用来表示两个实体之间的一对多关系。下面通过例子详细说明它们的使用场景和工作方式。 OneToMany 和 ManyToOne 的基本概念 ManyToOne 表示…...

一流的常州做网站/百度关键词搜索量查询

Go 的 flag 包可以解析命令行的参数。 一、命令行语法 命令行语法主要有以下几种形式&#xff1a; cmd -flag // 只支持bool类型 cmd -flagxxx cmd -flag xxx // 只支持非bool类型 以上语法对于一个或两个‘&#xff0d;’号是一样的&#xff0c;即 cmd -flag xxx &…...

网页设计与制作培训班哪家好/湖南长沙seo教育

y gaussmf(x,[sig c]) 其中&#xff0c;c是位置参数&#xff0c;sig是尺度参数&#xff0c;控制图形的胖瘦。 x 0:0.1:10; y gaussmf(x,[2 5]); plot(x,y) xlabel(gaussmf, P[2 5]) ylabel(gaussmf) legend(gaussmf); %添加图例代码 结果图 更多《计算机视觉与图形学》知…...

谁知道美国做的色情网站/发广告推广平台

ORA-16014错误解决办法 1.问题以及解决过程 SQL> select status from v$instance; STATUS ------------ MOUNTED SQL> alter database open; alter database open * 第 1 行出现错误: ORA-16014: 日志 2 的序列号 27 未归档, 没有可用的目的地 ORA-00312: 联机日志 2 线程…...

做网站和优化公司的宣传语/怎么做网络宣传推广

1. 显示环境变量HOME$ echo $HOME/home/redbooks2. 设置一个新的环境变量hello$ export HELLO"Hello!"$ echo $HELLOHello!3. 使用env命令显示所有的环境变量$ envHOSTNAMEredbooks.safe.orgPVM_RSH/usr/bin/rshShell/bin/bashTERMxtermHISTSIZE1000...4. 使用set命令…...

11网拍推广平台/seo诊断站长

2019独角兽企业重金招聘Python工程师标准>>> 1、firewalld的基本使用 启动&#xff1a; systemctl start firewalld 关闭&#xff1a; systemctl stop firewalld 查看状态&#xff1a; systemctl status firewalld 开机禁用 &#xff1a; systemctl disable firew…...

常宁网站建设/百度热门排行榜

–ACC建模大数据用于精简用例的实践 作者&#xff1a;emilyxlchen生活的智慧&#xff0c;有时不在于多&#xff0c;而在于少。同理适用于测试用例的管理中。 一&#xff0e;热身活动&#xff1a;数一数你的产品总用例 随着互联网时代节奏的日益加快&#xff0c;许多产品都会…...