C# 中string和StringBuilder性能差异
在拼接一个字符串写入csv文件时候发现string + 的方式耗时巨大,在小量字符串拼接的时候看不出,当字符串拼接一多,性能差异巨大。stringBuilder 拼接的字符串是40万个,string拼接的是4万个,耗时差异也是比较明显的。简而言之就是string 是不可变(Immutable)的,拼接的时候就是创建一个新的字符串。stringbuilder 是可变长度(Mutable)的,自然效率就高。
2024-02-09 2011 0
Winform在Mdi父窗体中打开子窗体
在 Winform 中,要使用 MDI 父窗体打开子窗体,需要将父窗体的 IsMdiContainer 属性设置为 true。以下是一个示例,演示如何在 MDI 父窗体中打开子窗体。
2024-02-08 1763 0
.NET奇数和偶数版本的区别
在 .NET 生态系统中,"奇数版本"和"偶数版本"这一术语通常用于描述 .NET Core(现在的 .NET)的发布模式。主要的区别在于奇数版本主要用于尝试新功能和实验性的变化,而偶数版本则更稳定、更适合企业生产环境。这种版本号的选择与很多开源项目和软件开发中的常见做法类似,旨在为用户提供更好的版本管理和稳定性保证。
2024-02-07 2079 0
.NET9 Alpha版本有哪些更新?
.NET 9 Alpha 版本于 2023 年 11 月发布,包含了对 C#、F#、.NET MAUI、ASP.NET Core、Entity Framework Core、Windows Forms、WPF 和 Blazor 等多项核心组件的更新和改进。此外,该版本还修复了许多 bug 并提升了性能。.NET 9 Alpha 版本包含以下一些主要更新。
2024-02-06 1965 0
ASP.NET PUT 404错误
解决 ASP.NET PUT 404 错误,需要从以下几个方面入手:1. 检查路由配置。2. 检查控制器和操作方法。3. 检查授权设置。4. 检查客户端错误。5. 检查 IIS 配置。
2024-02-05 1749 0
datagridview右键没有数据的地方不显示contextMenuStrip
在Winform中,可以使用下面的代码为DataGridView绑定右键菜单:this.dataGridView1.ContextMenuStrip = contextMenuStrip2;。但是实际使用中发现如果DataGridView还没有绑定数据,界面是空白的时候右键也会显示菜单。那么怎么样才能在datagridview右键没有数据的地方不显示contextMenuStrip呢?正确的做法是使用 ContextMenuStrip 的 Opening 事件,在该事件中判断是否点击数据上,如果不是就通过设置e.Cancel = true来取消 ContextMenuStrip 的显示。
2024-02-05 1905 0
Winform跨线程更新UI
在Winform应用程序中,由于UI线程和工作线程是不同的线程,因此直接在工作线程中更新UI控件会导致“线程间操作无效: 从不是创建控件的线程访问它”的错误。为了解决这个问题,需要使用一些方法来实现跨线程安全地更新UI。以下是一些常用的方法:1. 使用控件的Invoke/BeginInvoke方法(推荐)。
2024-02-05 1828 0
C#调用执行命令行窗口 (CMD)
在C#中,有时需要执行命令行指令来完成特定的任务。这可能包括运行脚本、管理服务、获取系统信息等。C# 提供了 System.Diagnostics 命名空间中的 Process 类来启动和管理系统进程,包括命令行窗口(cmd.exe)。
2024-02-04 2326 0
.NET从入门到精通学习路线
.NET 是微软开发的一个软件开发平台,用于构建各种类型的应用程序。它包括用于构建 Web 应用程序、桌面应用程序、移动应用程序、游戏和其他类型的应用程序的工具和框架。.NET 从入门到精通的学习路径可以分为以下几个阶段。
2024-02-04 2017 0
C#中的ref struct类型的用法
在 C# 7 中,引入了 ref struct 类型。ref struct 类型是一种引用类型,它在堆栈上分配,而不是托管堆。这意味着 ref struct 类型的值类型语义,但它们的行为更类似于引用类型。ref struct 类型的主要目的是为了提供一种安全和高效的方式来处理那些与内存操作相关的场景。
2024-02-01 2441 0
如何使用 .NET C# 进行单元测试
在.NET C#中进行单元测试通常使用xUnit、NUnit或MS Test等测试框架。以下是一个使用xUnit进行单元测试的简单示例。接下来,我们将创建一个单元测试类来测试 Calculator 类中的 Add 方法。可以使用测试运行器来运行单元测试。在Visual Studio中,你可以使用Test Explorer来运行单元测试。以上是使用xUnit的例子,使用NUnit或MS Test也非常相似,只是语法和一些特性略有不同。
2024-02-01 1852 0
C# ThreadPool实现原理和最佳实践
C#中的ThreadPool提供了一种管理线程池的机制,可以减少创建和销毁线程的开销,并提高多线程应用程序的性能。以下是一个简单的示例,演示如何使用C#中的ThreadPool来执行一些简单的任务。使用ThreadPool可以有效地管理线程池,并提高多线程应用程序的性能和可靠性。但在使用ThreadPool时,需要注意避免阻塞线程、控制并发度、处理异常等问题,以确保系统的稳定性和可维护性。
2024-01-29 2255 0
C#使用System.Speech朗读文本
System.Speech 命名空间提供了在 WinForms 应用程序中进行语音合成(TTS)的功能。您可以使用 System.Speech 中的类和方法来读取文本并将其转换为语音。nuget 安装System.Speech。以下是在 WinForms 中使用 System.Speech 进行文本转语音的示例。请确保您的系统上已安装中文语音包,并且可以通过 SelectVoiceByHints 方法选择到中文语音。
2024-01-29 1842 0
使用C#操作摄像头
使用C#操作摄像头,主要有两种方法:使用Windows.Media.Capture库。使用第三方组件,如AForge。Windows.Media.Capture库是Windows 10中提供的官方摄像头操作库。使用该库,可以直接访问摄像头设备的所有功能,包括拍照、录像、预览等。运行该程序,点击“打开摄像头”按钮,将打开摄像头预览。点击“拍照”按钮,将拍摄一张照片。
2024-01-29 3435 0
使用PM2部署ASP.NET Core网站程序
ASP.NET Core 是一个开源且跨平台的框架,用于构建现代的、云端的、联网的应用程序。本文将指导你如何使用 PM2 来部署和管理 ASP.NET Core 程序。PM2 不仅限于 Node.js 应用程序,它也可以作为一个通用的进程管理器来运行和维护 ASP.NET Core 程序。通过 PM2,你可以确保你的应用程序具有高可用性,并且可以在出现问题时自动重启。使用 PM2 部署 ASP.NET Core 应用程序提供了一个替代传统 IIS 和 Nginx 部署的方法,尤其是在不支持这些服务器的环境中,或者当你需要一个简单轻量级的解决方案时。
2024-01-25 2634 0
.NET C#实现自动关机
在.NET C#中实现自动关机,可以使用以下两种方法:方法一:调用shutdown.exe命令。在.NET C#中调用shutdown.exe命令,可以使用Process类的Start()方法。以下代码演示了如何使用shutdown.exe命令来实现自动关机。方法二:使用Win32 API。Win32 API提供了Shutdown()函数,可以用于关机、重启、注销等操作。要使用Shutdown()函数来实现自动关机,只需在代码中调用Shutdown()函数即可。以下代码演示了如何使用Shutdown()函数来实现自动关机。
2024-01-24 2281 0
C# 使用mciSendString实现播放声音
在C#中,你可以使用mciSendString函数来播放声音。mciSendString函数是Windows Multimedia API中的一部分,它允许你发送多媒体命令字符串给设备,以执行各种操作,包括播放声音。MCI(Media Control Interface,媒体控制接口)函数中,有些只适用于一种接口方式,有些则两种接口都可以用。mciSendString只适用于命令串接口方式(命令串中不区分大小写)。以下是一个简单的C#示例,演示如何使用mciSendString来播放声音文件。
2024-01-23 1950 0
.NET Core使用QuestPDF生成PDF
.NET Core使用QuestPDF生成PDF文档,可以通过以下步骤来实现:安装QuestPDF Nuget包。使用QuestPDF API生成PDF文档。使用QuestPDF API生成PDF文档,可以通过以下步骤来实现:创建一个Document对象。在Document对象上添加页面。在页面上添加文本、图像、表格等元素。将Document对象保存到文件。以下是一个简单的示例,用于生成一个包含文本和图像的PDF文档。
2024-01-20 2340 0
.NET Core C#使用SixLabors.ImageSharp图像处理库
SixLabors.ImageSharp是一个功能强大的跨平台图像处理库,适用于.NET Core和.NET 5/6等现代.NET平台。它支持各种图像格式,并提供了一个丰富的API,允许开发者进行复杂的图像操作。在本篇文章中,我们将介绍SixLabors.ImageSharp的一些常用属性和方法,并通过实例演示它们的使用。
2024-01-20 10078 0
.NET8 线程池优化
.NET8 对线程池进行了一些改进,以提高其性能和效率。.NET8 使用了新的线程池管理算法,该算法可根据当前的任务负载动态调整线程池的大小。该算法可以有效地防止线程池资源被浪费,同时又可以满足应用程序的需求。.NET8 引入了新的线程池超时机制,该机制可防止线程池资源被长时间占用。该机制可以有效地防止应用程序出现性能问题。总体而言,.NET8 对线程池的改进可以提高线程池的性能和效率。开发人员可以通过使用这些改进来提高应用程序的性能。
2024-01-17 2399 0
- 匿
-
匿
匿名用户 2026-06-01
- 匿
-
飞
飞翔 2026-05-06
-
匿
匿名用户 2026-04-28