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

C# 8.0 创建一个简单的控制台应用程序

在 C# 8.0 中,你可以编写各种程序,从简单的控制台应用到复杂的桌面、Web 或移动应用。下面,我将通过几个示例向你展示如何开始使用 C# 8.0 编写不同类型的程序。

1. 创建一个简单的控制台应用程序

步骤 1: 创建项目

在 Visual Studio 中,选择“创建新项目”。在项目模板中,选择“控制台应用 (.NET Core)”或“控制台应用 (.NET Framework)”,然后点击“下一步”。

步骤 2: 命名项目

给项目命名,例如 ConsoleAppDemo,然后点击“创建”。

步骤 3: 编写代码

在 Program.cs 文件中,你可以编写以下代码:

using System;namespace ConsoleAppDemo
{class Program{static void Main(string[] args){Console.WriteLine("Hello, World!");Console.ReadLine(); // 等待用户输入,防止程序立即退出}}
}
步骤 4: 运行程序

按 F5 运行程序,你会在控制台窗口看到输出 "Hello, World!"。

2. 使用异步流和模式匹配(C# 8.0 新特性)

使用异步流(Asynchronous Streams)
using System;
using System.Threading.Tasks;class Program
{static async Task Main(string[] args){var numbers = new[] { 1, 2, 3, 4, 5 };await foreach (var number in GetNumbersAsync(numbers)){Console.WriteLine(number);}}public static async IAsyncEnumerable<int> GetNumbersAsync(int[] numbers){foreach (var number in numbers){await Task.Delay(100); // 模拟异步操作,例如网络请求或文件IO操作yield return number;}}
}
使用模式匹配(Pattern Matching)
using System;
using System.Collections.Generic;
using System.Linq;class Program
{static void Main(string[] args){var list = new List<object> { 1, "Hello", 3.14 };foreach (var item in list){if (item is int i) // 使用 is 检查类型并同时赋值给变量 i{Console.WriteLine($"Integer: {i}");}else if (item is string s) // 使用 is 检查类型并同时赋值给变量 s{Console.WriteLine($"String: {s}");}else if (item is double d) // 使用 is 检查类型并同时赋值给变量 d{Console.WriteLine($"Double: {d}");}}}
}

3. 创建一个 Windows Forms 应用程序(桌面应用)

步骤 1: 创建项目

在 Visual Studio 中,选择“创建新项目”。在项目模板中,选择“Windows Forms 应用”项目类型。命名项目,例如 WindowsFormsAppDemo,然后点击“创建”。

步骤 2: 设计界面

使用设计视图添加控件,如按钮和文本框。双击按钮以添加点击事件处理程序。例如:

private void button1_Click(object sender, EventArgs e) {textBox1.Text = "Hello, World!"; // 当按钮被点击时更改文本框的文本。
}
步骤 3: 运行程序并测试界面交互。

按 F5 运行程序,你会看到一个窗口,其中包含一个按钮和一个文本框。点击按钮后,文本框会显示 "Hello, World!"。

这些示例展示了 C# 8.0 在不同类型应用程序开发中的基本用法。你可以根据需要扩展和修改这些示例以适应更复杂的需求。

http://www.dtcms.com/a/282739.html

相关文章:

  • Python 进阶学习之全栈开发学习路线
  • 电力名词通俗解析5:计量系统
  • 电力名词通俗解析4:电网DCS与SCADA系统通俗解释
  • adb性能测试命令
  • State
  • PXE实现Ubuntu,rockylinux,almalinux全自动安装
  • Apache CXF 漏洞曝光:存在拒绝服务与数据泄露双重风险
  • HTTP性能优化汇总
  • 分布式光伏气象站:光伏产业的智慧守护者
  • linux系统离线升级git版本 git-2.36.1
  • [特殊字符] CentOS 7 离线安装 MySQL 5.7 实验
  • 【PTA数据结构 | C语言版】列出叶结点
  • vivo S30评测:用设计诠释科技,以性能书写情怀
  • MybatisPlus-11.IService的批量新增
  • 坐标系和相机标定介绍,张正友标定法原理,opencv标定
  • keepalived+Haproxy 高可用配置
  • 中科米堆CASAIM-IM自动化3D扫描系统扫描电脑主机背板产品外观尺寸
  • Apache RocketMQ + “太乙” = 开源贡献新体验
  • Java 大视界 -- 基于 Java 的大数据分布式存储在云计算数据中心数据管理与调度中的应用(348)
  • Web前端:JavaScript和CSS实现的基础登录验证功能
  • k8s集群搭建
  • 【AI智能体】Dify 基于知识库搭建智能客服问答应用详解
  • Redis分布式锁深度剖析:从原理到高可用实践
  • MongoDB复杂查询 聚合框架
  • 个人笔记(linux/sort与uniq命令)
  • ETL还是ELT,大数据处理怎么选更靠谱?
  • GIT : early EOF invalid index-pack output
  • Jmeter socket接口测试
  • C#——循环(while循环和do-while循环)
  • Python 与JA3 库的应用