- 博客(18)
- 收藏
- 关注
原创 Lambda表达式
Lambda表达式在多种编程语言中都有实现,尽管语法和使用场景可能不同,它们的核心思想都很相似:简洁、匿名的函数定义。通过Lambda表达式,程序员可以更简洁地编写函数。
2024-12-26 15:03:37
846
原创 C# 中 Webclient和Httpclient
WebClient虽然简单易用,但功能有限,性能不佳且过时,尤其在处理复杂的HTTP请求时不如HttpClient。而HttpClient功能强大,适合处理现代的网络请求和复杂的API调用,但它的配置较为复杂,需要注意实例的复用和管理。在现代C#开发中,推荐使用HttpClient,但必须正确管理其实例的生命周期,以避免性能问题。
2024-12-26 11:00:35
2149
原创 WinDows Form 常用控件(一)
在实际WinForms应用开发中,这些控件是构建用户界面的基础,它们提供了与用户交互的最常见方式。开发者可以通过组合这些控件创建复杂的用户界面,并在其中捕获用户输入、显示数据或提供操作按钮。以下是这些控件的实际应用场景总结。•表单设计: 通过TextBox、Label、Button等控件,可以快速设计用户登录、注册等表单页面。•数据展示: 使用DataGridView和ListBox,开发者可以轻松展示和操作大量数据。•用户选择。
2024-10-25 16:39:59
1270
原创 C# Window Form 基础
•是一个创建桌面应用程序的快速方法,提供了丰富的控件和事件驱动的编程模型。• 你可以使用Form类来表示窗口,添加各种控件如按钮、文本框、列表框等,并为这些控件添加事件处理程序。•MessageBox可以用来显示简单的消息对话框,提示用户。•是启动 Windows Forms 应用程序的主入口,负责运行主窗口。
2024-10-24 17:23:41
2356
原创 SQL查询语句:多表联合查询和存储过程
1.多表联合查询:• INNER JOIN :返回两个表中都有的匹配数据。• LOFT JOIN :返回左表中的所有数据,即使没有匹配的右表数据。• FULL JOIN : 返回两个表的所有数据(MySQL中通过UNION实现)。2.存储过程:• 存储过程可以将复杂的业务逻辑封装成科重复调用的程序单元。• 可以接受输入参数并返回结果。• 存储过程适用于数据处理、复杂查询或批量更新操作。
2024-10-23 16:29:01
2539
原创 Navicat 基础操作和 SQL 语句详解
1.表的创建:通过CREATE TABLE 语句可以在Navicat中创建表。2.CRUD 操作:• 创建(插入数据)使用 INSERT INTO。• 查询数据使用SELECT, 可以使用条件、排序、分组等功能。• 更新数据使用UPDATE。• 删除数据使用DELETE FROM.3. 复杂查询:如JOIN连接查询、聚合函数(COUNT、SUM、AVG等)。
2024-10-23 10:32:00
4575
原创 LINQ在数据库中的应用:LINQ to SQL 和 Entity Framework
•Create:使用Add()方法向数据库中插入新对象。•Read:使用LINQ查询(ToList())从数据库中读取数据。•Update:修改实体对象后,调用保存更新。•Delete:使用Remove()删除对象,并调用保存更改。
2024-10-22 15:25:56
839
原创 C# LINQ
LINQ(Language Integrated Query) 是C#中的一共强大工具,它允许你使用类似SQL的查询语法来操作集合(如数组、列表等)和数据源(如数据库、XML等)。LINQ使得查询更加简洁、直观,能够在编译时进行类型检查并提供良好的IDE支持。LINQ有多种形式,比如用于内存集合的LINQ to Objects、用于数据库的LINQ to SQL、用于LINQ to XML等等。
2024-10-22 11:59:21
1298
原创 死锁(Deadlock)C#
1.互斥条件:每次只有一个线程能够访问资源。2.持有并等待条件:线程已经持有一个资源,并在等待其他资源。3.不可剥夺条件:线程持有的资源不能被强行剥夺,必须由线程自己释放。4.循环等待条件:一组线程形成循环,每个线程都在等待下一个线程释放资源。避免死锁的策略:1.锁的顺序:确保所有线程按照相同的顺序获取锁,避免循环等待。2.锁的超时机制:使用Monitor.TryEnter等等待超时的锁机制,避免无期限等待锁。3.减少锁的持有时间:尽量缩小锁定范围,减少锁竞争,降低死锁的可能性。
2024-10-21 16:12:53
2884
1
原创 C# 多线程安全
1.lock和monitor:确保同一时刻只有一个线程访问共享资源。2.Mutex和Semaphore:提供跨进程同步或限制并发访问的线程数量。3.ConcurrentDictionary:提供内置线程安全操作,简化集合的并发访问。4.减少数据竞争:确保对共享资源的访问时线程安全的,通过合理使用锁、信号量和线程安全集合,可以有效避免多线程环境中的数据竞争和不一致问题。
2024-10-21 13:52:31
1473
原创 C# 多进程之间的通信
• 命名管道:适用于本地进程之间的简单数据交换。• 内存映射文件:适用于传递较大的数据或需要共享内存区域的情况。• Socket:适用于需要跨网络或跨主机的通信。• 消息队列:适用于需要异步处理和消息排队的场景。
2024-10-18 14:19:20
743
原创 进程与线程
线程是进程的一个执行单元,是操作系统调度的基本单位。一个进程可以包含多个线程,这些线程共享该进程的地址空间和资源(如内存、文件描述符),但每个线程拥有自己的栈空间和程序计数器。• 进程:适合需要独立运行、资源隔离的任务,创建和切换的开销较大,通信复杂。• 线程:适合需要高效并发、共享数据的任务,创建和切换开销小,通信简单,但容易出现竞争问题。
2024-10-17 13:43:48
902
原创 C# 中System.IO 中File类 文件路径过长
关于 长路径支持 问题,Windows 和 .NET 框架在早期版本中存在文件路径长度的限制,路径长度超过个字符(即 "MAX_PATH" 限制)时会导致。但是,从 Windows 10 开始,微软提供了对的支持,并且从 .NET Framework 4.6.2 开始,.NET 也增加了对长路径的支持。下面将详细描述如何在不同情况下启用长路径支持。
2024-10-16 16:35:32
1569
原创 C#中System.IO 文件操作 (File类)
• File类是一个方便的静态类,用于执行文件的常规操作,如创建、读取、写入、删除等。• 实际使用中需要特别注意的是文件是否被锁定、路径是否有效,权限是否足够等常见问题。• 使用using语句来确保文件流及时释放,避免锁定问题。关于路径太长这个问题,我会在其他文章里面详细梳理。
2024-10-16 10:08:28
2867
原创 C# 中SYSTEM.IO 文件的操作(Fileinfo 和 FileStream )
• FileInfo 使用于简单的文件属性操作,如获取文件大小,删除文件,复制文件,移动文件等。• FileStream适用于处理文件的字节级读写操作,尤其是当需要精细控制文件内容是。• FileStream操作更底层,通常需要小心处理资源管理和并发问题。
2024-10-15 15:30:36
1019
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅