当前位置: 首页 > 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;渐渐开始统领国内安全市场的潮流…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...