.NET decimal 截断指定小数位数(非四舍五入)

在项目开发中,处理分摊金额等场景时,最后一项数据常因精度问题出现负数。本文分享一种在 .NET (C#) 中自定义扩展方法,将 decimal 类型数值直接截取至指定小数位数的解决方案,该方法采用字符串操作实现截断而非四舍五入,调用优雅且易于集成。

C# var关键字详解:隐式类型、规则与最佳实践

本文详解C#中var关键字的隐式类型机制。var并非弱类型或Object,而是由编译器根据初始值推断出的强类型局部变量。掌握其必须在声明时初始化、类型不可变及仅限局部作用域四大核心规则,能有效提升代码简洁性与可维护性。

C# var关键字详解:隐式类型、规则与最佳实践

C#中UdpClient的点对点通信与多播实现详解

本文详细介绍如何在C#中使用System.Net.Sockets.UdpClient类实现UDP通信。包含建立连接、发送接收数据的基本方法,以及使用JoinMulticastGroup实现的局域网多播功能。附完整服务端与客户端代码示例,帮助开发者快速掌握C#下的无连接网络数据传输技术。

C# TextBox多行文本框字数限制与无限制设置

在C#开发中,TextBox控件即使设置为Multiline模式也受字数限制。MaxLen属性默认值为32767,仅统计字符数而非字节数。超过该数值时用户输入会被自动截断且无报错提示。通过将MaxLength设为0可实现解除字数限制,支持存入约4亿个字符。本文详细解析该属性的行为机制及配置方法。

C# Socket编程实战:TCP与UDP通信原理及代码实现

本文深入解析C#中System.Net.Sockets命名空间的底层通信机制,通过TcpClient、TcpListener等辅助类简化开发。详细展示了基于面向连接的TCP和无连接的UDP两种协议进行网络通信的标准操作流程,并提供包含连接、监听、发送、接收及断开逻辑的完整控制台代码,帮助开发者掌握基础网络编程技能。

C# Socket编程实战:TCP与UDP通信原理及代码实现

C#通过属性名称获取(读取)属性值的方法

本文介绍在C#中如何利用反射技术,通过属性名称字符串动态获取对象的属性值。核心在于使用 `GetType().GetProperty()` 定位属性对象,并调用 `GetValue()` 方法提取数据。文中提供了基于抽象基类和单类扩展两种代码实现方案,帮助开发者避免重复编写条件判断逻辑,提升代码通用性。

C#实现字符串与16进制互转的实用代码

本文介绍C#中将字符串转换为十六进制、将十六进制字符串还原为字符,以及将16进制串转为整型或浮点型的常用方法。通过BitConverter、Convert.ToInt32和Int32.Parse等核心API,提供可直接复用的代码示例,帮助开发者快速处理数据编码转换需求。

C#数组操作核心技巧:元组、克隆排序与切片取段

本文详解C#中数组与集合的关键操作,涵盖如何使用Tuple创建元组数据、通过Clone实现数组浅拷贝,以及如何利用Array.Sort结合IComparer接口对引用类型进行自定义排序。此外,还介绍了使用ArraySegment结构高效截取数组片段的技巧,提供完整代码示例供参考。

C#实现人民币小写金额转大写的算法解析

本文介绍了在C#中实现将商品或财务系统中的小写金额转换为中文大写金额的方法。通过定义基数字符数组和位值比例数组,利用字符串截取与索引映射逻辑,完成从角分到位万兆的自动拼写。文中提供完整核心代码并附带注意事项,帮助开发者快速集成该功能至Windows Form或Web应用中。

C# Semaphore 信号量用法详解与示例

本文深入解析C#中的Semaphore(信号量)类,展示如何通过它管理多线程环境下的资源访问权限。通过从零初始化的单信号量池示例,演示Release和WaitOne方法的使用,并解释超时机制与参数限制的重要性。代码包含创建线程、分配许可及异常处理逻辑,帮助开发者掌握C#高级并发控制技术,避免死锁或资源竞争问题。