
C#语言
文章平均质量分 57
.NET/C#相关知识点
JosieBook
全栈工程师,.NET/Java/Python/前端/数据库/AI/大数据,CSDN后端领域优质创作者,阿里云博客专家,欢迎交流
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C#】在WinForms中实现控件跨TabPage共享的优雅方案
本文介绍了在WinForms应用中实现控件跨容器共享的多种方案。基础方案通过修改控件的Parent属性实现简单移动,进阶方案包括创建控件管理类和使用用户控件封装。三种方案各有优劣:直接修改Parent适合简单场景,管理类增强代码可维护性,用户控件方案灵活性最高但占用较多内存。文章提供了完整示例代码,建议根据项目复杂度选择方案——简单需求用基础方案,企业级应用推荐用户控件方案,性能敏感场景可考虑控件池技术。这些方法都能有效减少内存开销,实现控件复用。原创 2025-07-22 15:10:02 · 334 阅读 · 0 评论 -
【C#】C#异步编程:异步延时 vs 阻塞延时深度对比
摘要: 本文对比C#中两种延时操作方式:阻塞延时Thread.Sleep和异步延时Task.Delay。Thread.Sleep会阻塞当前线程,导致资源浪费和UI无响应,适用于简单场景;而Task.Delay通过异步机制释放线程,支持取消操作,适合UI应用、Web API等高并发场景。实际示例展示了Task.Delay在UI中的响应性优势及带取消功能的实现。总结建议优先使用Task.Delay以提升性能和资源利用率,仅在简单控制台程序等场景使用Thread.Sleep。原创 2025-06-23 10:13:17 · 708 阅读 · 7 评论 -
【C#语言】C#文件操作实战:动态路径处理与安全写入
在C#开发中,我们经常遇到这样的文件操作场景:需要根据程序运行位置动态确定文件存储路径目标目录可能不存在需要自动创建需要处理文件只读属性等特殊状态要求安全释放文件资源避免内存泄漏本文将通过一段生产级代码示例,演示如何优雅解决这些问题。Filter = "文本文件|*.txt|日志文件|*.log",Title = "选择保存位置"始终使用Path.Combine()拼接路径优先使用AppDomain获取基础路径显式指定文件编码格式。原创 2025-03-25 18:29:33 · 689 阅读 · 0 评论 -
【C#语言】深入理解C#多线程编程:从基础到高性能实践
在现代软件开发中,多线程编程逐渐成为一个不可或缺的技术。特别是在处理高并发任务时,多线程能够有效提升程序的响应性和性能。C#语言作为一门强类型、面向对象的编程语言,提供了丰富的多线程编程支持,使得开发者能够轻松实现并发任务处理CPU密集型:Parallel类/ThreadIO密集型:async/await混合场景:Task.Run组合。原创 2025-03-24 16:29:23 · 958 阅读 · 0 评论 -
【C#语言】C#中的同步与异步编程:原理、示例与最佳实践
在现代软件开发中,高效的资源利用和响应速度是衡量程序质量的重要指标。C# 作为一门支持多范式编程的语言,提供了强大的同步和异步编程模型。本文将通过代码示例、示意图和场景分析,带你深入理解这两种编程模式的差异及适用场景。任务简单且无需并发。操作是CPU密集型(如图像处理)。同步编程是代码世界的“单行道”,简单但容易拥堵;异步编程则是“立交桥”,通过智能调度提升效率;并行异步则像“多车道高速公路”,最大化资源利用率。理解它们的差异后,开发者可以根据具体场景灵活选择,从而编写出既高效又优雅的C#代码。原创 2025-03-19 08:28:08 · 1286 阅读 · 0 评论 -
【C#语言】C#同步与异步编程深度解析:让程序学会“一心多用“
在现代软件开发中,处理高并发、优化响应速度是每个开发者必须面对的挑战。C#的异步编程模型为我们提供了一把解决这些问题的金钥匙。本文将深入解析同步与异步的本质区别,并通过实际案例演示如何正确使用async/await构建高效应用。掌握异步编程如同获得程序世界的"分身术",但要真正发挥其威力,需要深入理解其工作原理,并遵循最佳实践。记住:异步不等于多线程,但可以更好利用多线程不要为了异步而异步,识别真正受益场景异步代码需要配套的异常处理和取消机制逐步改造现有代码,保持兼容性标题详情作者。原创 2025-03-18 18:45:10 · 1227 阅读 · 0 评论 -
【C#】VS2019怎么能无论是Debug还是Release模式,生成路径都在Release文件夹下?
正常情况下,是这样:怎么让无论设置的是什么模式,生成的文件都在Release路径下呢?项目属性-生成-配置-所有配置,设置后无论哪种模式都会生成在Release文件夹中。原创 2025-03-13 14:44:17 · 304 阅读 · 0 评论 -
【C#】详解C#中的内存管理机制
在C#中,内存管理主要通过 垃圾回收(Garbage Collection, GC) 机制自动完成,但开发者仍需在特定场景下关注资源释放和性能优化。自动管理:C#通过GC自动回收托管堆内存,开发者无需手动释放。需关注的场景:非托管资源(文件、网络等)需通过IDisposable释放。避免内存泄漏(如循环引用、事件未取消)。优化大对象和频繁内存分配。工具辅助:使用内存分析工具(如Visual Studio Diagnostic Tools、JetBrains dotMemory)检测内存问题。原创 2025-03-07 10:55:18 · 1234 阅读 · 0 评论 -
【C#】C#中的线程安全:使用lock关键字确保共享资源的安全访问
在多线程编程中,确保对共享资源的安全访问是至关重要的。本文将讨论如何使用 lock 关键字和同步对象来实现线程安全,并提供一个简单的示例代码。这里定义了一个静态对象 sync,用于作为锁定的基础对象。在多线程环境中,使用 lock 关键字和同步对象是确保对共享资源安全访问的重要手段。通过合理的设计,可以避免数据竞争和不一致性的问题,从而提高程序的稳定性和可靠性。希望通过本文的示例,能够帮助你更好地理解 C# 中的线程安全。原创 2025-02-11 11:46:27 · 466 阅读 · 0 评论 -
【C#】rdlc报表答应报错:未能加载文件或程序集“Microsoft.SqlServer.Types
rdlc打印错误原创 2024-04-22 11:25:19 · 830 阅读 · 0 评论 -
【C#】C#匹配两个相似的字符串莱文斯坦距离Levenshtein Distance莱文斯坦距离算法
莱文斯坦字符串相似度匹配原创 2024-04-11 15:27:00 · 799 阅读 · 0 评论 -
【C#】C#实现txt文件的读写、C#实现字符串统计
实现对一个输入字符串的字符数、字符出现的次数、字符出现的位置的统计。并且能够写入txt文件保存,也可以加载这个保存的txt文件。原创 2024-01-16 13:41:56 · 884 阅读 · 0 评论 -
【C#】C#实现PDF合并
定义了三个静态字符串变量,用于存储上次选择的文件夹路径、输入文件夹路径和输出文件夹路径。代码开始时引入了一些命名空间,这些命名空间包含了程序运行所需的类和方法。可将一个文件夹内的所有PDF合并成一个PDF文件导出。可使用联机方式或者文件下载方式。原创 2024-01-09 13:40:17 · 3253 阅读 · 0 评论 -
【C#】蜗牛爬井问题C#控制台实现
井深30米,蜗牛在井底,每天爬3米又滑下1米,问第几天爬出来。原创 2023-12-29 16:25:52 · 1131 阅读 · 0 评论 -
【C#】C#对DataTable的某一列或多列排序没效果解决方案
可以在表的最后面新建一列int类型的临时类,将要排序的列中的string类型的数据都放到新建的这个int类型的类中,在新的这列中进行对整个表格的排序,排序后将临时列删除。如上所示,添加要排序的列的时候,必须指定是typeof(Int32)。如果已经添加的列是string类型怎么办?原创 2023-11-08 17:45:42 · 588 阅读 · 0 评论 -
【C#】C#调用进程打开一个exe程序
可以调用的程序可以不是C#程序,可以是其他应用程序,例如windows自带的一些工具,或者其他语言做的程序,只要是exe都可以启动进程。原创 2023-09-05 14:47:29 · 3352 阅读 · 1 评论 -
【C#】WinForm中如何获取一个控件相对于主界面的位置
使用button控件的 PointToScreen 方法和Form控件的 PointToClient 方法来获取button1相对于Form边界的位置。原创 2023-06-15 09:57:52 · 3203 阅读 · 0 评论 -
【C#基础】C#数据类型总结
C#数据类型总结原创 2023-02-21 17:33:10 · 96 阅读 · 0 评论 -
【博客园】博客园大佬Benny
博客园Benny地址:https://www.cnblogs.com/sexintercourse/p/16283967.html。原创 2023-02-16 17:49:40 · 174 阅读 · 0 评论 -
ASCII码字符对照表
二进制,八进制,十进制,十六进制,以及字符对应的Asiic码转载 2022-09-02 17:43:49 · 7348 阅读 · 0 评论 -
C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线方式
C#chart控件实现图表的移动、缩放等功能转载 2022-12-14 15:55:06 · 6895 阅读 · 1 评论 -
C#DataTable中交换两列交叉相同的值
C#交换DataTable中交叉相同的两列值原创 2022-12-12 13:54:40 · 470 阅读 · 0 评论 -
C#写入txt日志
C#文件流写入txt日志原创 2022-10-13 13:55:46 · 1876 阅读 · 0 评论 -
C#控件名称缩写前缀
C#控件名称缩写前缀原创 2022-09-16 11:27:42 · 356 阅读 · 0 评论 -
C#资源博客网站
勇哥的工业自动化,Darren Ji学习网站博客原创 2022-09-05 10:49:04 · 148 阅读 · 0 评论 -
C#同步调用sync与异步调用Async
同步调用委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。同步调用的例子:} } 运行结果: * * * * * * * * * * SyncInvokeTest * * * * * * * * * * * * * * Computing 1 + 2 .. . Computing Complete . Do other work .. . .. . .. .异步调用。......原创 2022-08-26 14:37:42 · 2367 阅读 · 2 评论 -
从零开始编写自己的C#框架
C#框架原创 2022-08-25 16:05:40 · 223 阅读 · 0 评论 -
webservice的创建+发布+调用
web service服务的创建,win10系统中的发布,winform调用接口函数原创 2022-08-25 14:32:50 · 1782 阅读 · 0 评论 -
C#ADO技术DataTable、DataSet、DataReader、DataAdapter
C#使用ADO技术操作数据库原创 2022-08-25 08:39:54 · 824 阅读 · 0 评论 -
C# 进度条使用
C# 进度条的使用,Winform自定义使用进度条原创 2022-08-05 14:06:26 · 9755 阅读 · 0 评论 -
NPOI组件下载、引用、基本使用
使用NPOI处理表格的方法,C#语言调用原创 2022-08-04 11:10:06 · 9581 阅读 · 2 评论 -
C#自定义进度条
新建两个界面 Form1和 FormBarlable textbox buttonlabel1 label2 button timer1 。timer的使能设置为true代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Tex.原创 2021-12-29 15:47:54 · 1448 阅读 · 0 评论 -
我的socket服务端客户端通信
服务端using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using SocketManager;using System.Net;原创 2021-06-23 10:49:33 · 89 阅读 · 0 评论 -
【C#】WebService的创建、发布、发布到服务器、客户端调用
一、接口的开发开发工具:Vs2019首先新建一个Web项目点击下一步—>选择空项目项目建好后,选中项目名称 右键添加新项,选择web服务(ASMX)这个时候我们就建好了一个WebServices项目了,新建的接口默认有一个HelloWorld方法点击执行:网页地址栏就是我们刚刚新建的webService接口地址,HelloWord就是默认的方法,网址就是https://localhost:44305/WebService1.asmx为本地使用的意思。HelloWord是一个方法,这原创 2021-04-23 15:44:54 · 3264 阅读 · 1 评论 -
C#回调函数的简单讲解与应用例子
转载地址:https://blog.csdn.net/sajiazaici/article/details/78702144本博客一直以来的宗旨就是:用最简单的方式讲清楚不复杂的问题。因为本人也很菜所以也没法讲太复杂HHHHHH…所以如果哪天某个大神看到了觉得讲的有问题欢迎指出。话不多说进入正题。。——————————————————————————————————————这篇文章的目的就是讲清楚C#回调函数是什么,以及什么时候使用。直接拿例子来讲算了- -using System;nam转载 2020-12-25 09:17:20 · 1093 阅读 · 0 评论 -
VB与C#代码转换在线工具,亲测好用
VB —>C#C# —>VB在线工具链接:https://converter.telerik.com原创 2020-12-13 13:57:19 · 8593 阅读 · 0 评论 -
C# win10系统调用不了系统自带的软键盘osk.exe
有的win10系统可以调用windows自带的软键盘osk,有的win10系统调用不了。原因是win10系统是64位的,但是osk.exe是32位的软件。。。。使用下面的代码,就可以实现调用osk…亲测有效。。。。。 public class StartKeyBoard { public static bool isShowNumBoard = false; [DllImport("kernel32.dll", SetLastErr..原创 2020-12-08 15:13:35 · 5950 阅读 · 0 评论 -
C#设置配置文件与读取配置文件
第一步:新建项目,在项目的App.config中配置信息:第二步:添加配置有关的引用和命名空间:第三步:在主程序中读取key,以及value;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using ...原创 2020-04-23 09:14:01 · 7969 阅读 · 1 评论 -
C#委托事件最清楚的例子
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.W...原创 2020-04-22 16:05:41 · 225 阅读 · 0 评论 -
C#事件中的两个参数(object sender,EventArgs e)
C#窗体程序有很多的时间,比如按钮点击事件,双击事件,Form_Load事件,这些事件的实现里都有两个参数(object sender,EventArgs e),什么意思呢?我们新建一个窗体程序,双击产生Load事件。我们可以看到,Form1_Load(object sender, EventArgs e)本质就是一个有两个参数的函数。那么函数怎么能够自己调用自己呢?不能。它肯定咋某个地方...原创 2020-04-22 13:38:59 · 10412 阅读 · 1 评论