Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用 Visual Studio 创建 .NET 控制台应用程序

使用 Visual Studio 创建 .NET 控制台应用程序

原创
作者头像
51Aspx
发布于 2022-03-29 03:52:42
发布于 2022-03-29 03:52:42
5.5K00
代码可运行
举报
文章被收录于专栏:51Aspx专栏51Aspx专栏
运行总次数:0
代码可运行

本教程演示如何在 Visual Studio 2022 中创建和运行 .NET 控制台应用程序。

先决条件

创建应用

创建一个名为“HelloWorld”的 .NET 控制台应用项目。

  • 启动 Visual Studio 2022。
  • 在“开始”页上,选择“创建新项目”。
  • 在“创建新项目”页面,在搜索框中输入“控制台”。 接下来,从“语言”列表中选择“C#”或“Visual Basic”,然后从“平台”列表中选择“所有平台” 。 选择“控制台应用程序”模板,然后选择“下一步” 。

如果看不到 .NET 模板,则可能缺少所需的工作负载。 在“找不到所需内容?”消息下,选择“安装更多工具和功能”链接。 Visual Studio 安装程序随即打开。 确保安装了 .NET 桌面开发工作负载。

  • 在“配置新项目”对话框中,在“项目名称”框中输入“HelloWorld”。 然后,选择“下一步”。

在“其他信息”对话框中,选择“.NET 6 (长期支持)”,然后选择“创建” 。 该模板创建了一个在控制台窗口中显示“Hello World”的简单应用程序。 代码位于 Program.cs 或 Program.vb 文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Console.WriteLine("Hello, World!");

如果未显示想要使用的语言,请更改页面顶部的语言选择器。

对于 C#,代码只是一行,用于调用 Console.WriteLine(String) 方法以在控制台窗口中显示“Hello World!”。 将 Program.cs 的内容替换为以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

该代码将定义类 Program,其中包含一个将 String 数组用作参数的方法 MainMain 是应用程序入口点,同时也是在应用程序启动时由运行时自动调用的方法。 args 数组中包含在应用程序启动时提供的所有命令行自变量。 在最新版本的 C# 中,名为顶级语句的新功能允许你省略 类和 Main 方法。 大多数现有 C# 程序不使用顶级语句,因此本教程不使用此新功能。 但它在 C# 10 中可用,是否在程序中使用它是样式首选项的问题。

运行应用

按 Ctrl+F5 运行程序而不进行调试。 此时会打开一个控制台窗口,其中显示了文本“Hello World!”。

按任意键关闭控制台窗口。

增强应用

改进应用程序,使其提示用户输入名字,并将其与日期和时间一同显示。

在 Program.cs 或 Program.vb 中,将 方法的内容(当前只是调用 的行)替换为以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Console.WriteLine("What is your name?");
var name = Console.ReadLine();
var currentDate = DateTime.Now;
Console.WriteLine($"{Environment.NewLine}Hello, {name}, on {currentDate:d} at {currentDate:t}!");
Console.Write($"{Environment.NewLine}Press any key to exit...");
Console.ReadKey(true);

此代码会在控制台窗口中显示一条提示,然后等待用户输入字符串并按 Enter。 它会将此字符串存储到名为 name 的变量中。 它还会检索 DateTime.Now 属性的值(其中包含当前的本地时间),并将此值赋给 currentDate 变量。 同时会在控制台窗口中显示这些值。 最后会在控制台窗口中显示一条提示,并调用 Console.ReadKey(Boolean) 方法来等待用户输入

Environment.NewLine 是一种独立于平台和语言的表示换行符的方式。 替代方法是在 C# 中使用 \n 和在 Visual Basic 中使用 vbCrLf。

字符串前面的美元符号 ($) 使你可以将表达式(如变量名称)放入字符串中的大括号内。 表达式值将代替表达式插入到字符串中。 此语法称为内插字符串。

按 Ctrl+F5 运行程序而不进行调试。

出现提示时,输入名称并按 Enter 键。

按任意键关闭控制台窗口。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【RabbitMQ】高级特性—死信队列详解
死信(dead message)简单理解就是因为种种原因,无法被消费的信息,就是死信
椰椰椰耶
2025/08/16
3210
【RabbitMQ】高级特性—死信队列详解
【RabbitMQ】高级特性—事务、消息分发详解
RabbitMQ 是基于 AMQP 协议实现的,该协议实现了事务机制,因此 RabbitMQ 也支持事务机制。Spring AMQP 也提供了对事务相关的操作,RabbitMQ 事务允许开发者确保消息的发送和接收是原子性的,要么全部成功,要么全部失败
椰椰椰耶
2025/08/16
1670
【RabbitMQ】高级特性—事务、消息分发详解
【RabbitMQ】高级特性—TTL、延迟队列详解
TTL(Time to Live,过期时间),即过期时间。RabbitMQ 可以对消息和队列设置 TTL
椰椰椰耶
2025/08/16
1500
【RabbitMQ】高级特性—TTL、延迟队列详解
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
Java廖志伟
2022/03/07
8550
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
RabbitMQ 延迟队列实现定时任务
开发中经常需要用到定时任务,对于商城来说,定时任务尤其多,比如优惠券定时过期、订单定时关闭、微信支付2小时未支付关闭订单等等,都需要用到定时任务,但是定时任务本身有一个问题,一般来说我们都是通过定时轮询查询数据库来判断是否有任务需要执行。
用户4283147
2022/10/27
5580
RabbitMQ 延迟队列实现定时任务
【Rabbitmq篇】RabbitMQ⾼级特性----持久性,发送⽅确认,重试机制
RabbitMQ 的持久化是确保消息在服务器重启或意外故障后不会丢失的重要特性。它主要涉及到交换机(Exchange)、队列(Queue)和消息(Message)三个层面的持久化。
用户11369558
2024/11/25
2.3K0
【Rabbitmq篇】RabbitMQ⾼级特性----持久性,发送⽅确认,重试机制
实战:SpringBoot集成rabbitmq并实现延时队列
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。
JAVA葵花宝典
2020/07/09
1.1K0
实战:SpringBoot集成rabbitmq并实现延时队列
15-RabbitMQ高级特性-死信队列
死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。
Devops海洋的渔夫
2023/02/10
1.1K0
15-RabbitMQ高级特性-死信队列
近九万字的RabbitMQ图文详解
RabbitMQ 简介:RabbitMQ 基于 AMQP 标准,采用 Erlang 语言开发的消息中间件。
Java廖志伟
2022/03/07
1.2K0
近九万字的RabbitMQ图文详解
RibbitMQ学习笔记延迟队列
延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。
默 语
2024/11/20
1230
RibbitMQ学习笔记延迟队列
浅析RabbitMQ的延迟队列
这些场景都有一个特点,需要在某个事件发生之后或者之前的指定时间点完成某一项任务,如:发生订单生成事件,在十分钟之后检查该
小熊学Java
2023/07/16
5090
浅析RabbitMQ的延迟队列
RabbitMQ的死信队列
RabbitMQ的死信队列(Dead Letter Queue,简称DLQ)是一种用于处理消息失败或无法路由的消息的机制。在RabbitMQ中,当消息出现以下情况时,它可能会被标记为死信:
会洗碗的CV工程师
2024/05/03
1.6K0
RabbitMQ的死信队列
RabbitMQ消息队列入门及解决常见问题
两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。
不吃紫菜
2023/02/13
2.3K0
RabbitMQ消息队列入门及解决常见问题
【消息中间件】异常和死信消息们的浪浪山
新建项目rabbitmqdemo02,新建模块producer-springboot
半旧518
2023/10/17
3560
【消息中间件】异常和死信消息们的浪浪山
RabbitMQ消息的可靠性投递
在RabbitMQ工作的过程中,每个环节消息都可能传递失败,那么RabbitMQ是如何监听消息是否成功投递的呢?
会洗碗的CV工程师
2024/05/01
4641
RabbitMQ消息的可靠性投递
【Rabbitmq篇】高级特性----TTL,死信队列,延迟队列
目前有俩种方式可以设置消息的TTL 一是设置队列的TTL,队列中所有消息都有相同的过期时间.
用户11369558
2024/11/25
1.2K0
【Rabbitmq篇】高级特性----TTL,死信队列,延迟队列
分布式--RabbitMQ集成SpringBoot、消息可靠性、死信队列、延迟交换机、集群
SpringBoot中使用RabbitTemplate自动注入,即可发送消息,并对方法都进行了封装
aruba
2022/09/19
6550
分布式--RabbitMQ集成SpringBoot、消息可靠性、死信队列、延迟交换机、集群
【云原生进阶之PaaS中间件】第四章RabbitMQ-4.1-原理机制与进阶特性
4.客户端使用Routing key,在Exchange和Queue之间建立好绑定关系。
江中散人_Jun
2024/02/20
5300
【云原生进阶之PaaS中间件】第四章RabbitMQ-4.1-原理机制与进阶特性
在 Java Spring Boot 中使用 RabbitMQ 实现延迟消息
在现代分布式应用中,异步通信和解耦是提升系统性能与可靠性的关键。RabbitMQ 作为一款成熟、稳定的消息中间件,被广泛应用于各种场景。然而,RabbitMQ 本身并不直接支持延迟消息(即消息在发送后经过指定时间才被消费者消费)。
技术文章分析
2025/08/08
2580
RabbitMQ之备份交换机
  有了 mandatory 参数和回退消息,我们获得了对无法投递消息的感知能力,有机会在生产者的消息 无法被投递时发现并处理。但有时候,我们并不知道该如何处理这些无法路由的消息,最多打个日志,然 后触发报警,再来手动处理。而通过日志来处理这些无法路由的消息是很不优雅的做法,特别是当生产者 所在的服务有多台机器的时候,手动复制日志会更加麻烦而且容易出错。而且设置 mandatory 参数会增 加生产者的复杂性,需要添加处理这些被退回的消息的逻辑。如果既不想丢失消息,又不想增加生产者的 复杂性,该怎么做呢?前面在设置死信队列的文章中,我们提到,可以为队列设置死信交换机来存储那些 处理失败的消息,可是这些不可路由消息根本没有机会进入到队列,因此无法使用死信队列来保存消息。 在 RabbitMQ 中,有一种备份交换机的机制存在,可以很好的应对这个问题。
别团等shy哥发育
2023/02/25
4640
RabbitMQ之备份交换机
推荐阅读
相关推荐
【RabbitMQ】高级特性—死信队列详解
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档