编辑
2025-10-05
C#
00

SharpPcap是一个功能强大的.NET库,用于跨平台(Windows、Mac、Linux)的数据包捕获。本文将介绍SharpPcap的主要特性,并提供几个详细的应用示例。

主要特性

  1. 跨平台支持:
    • Linux: 支持libpcap
    • Windows: 支持Npcap和WinDivert
    • 所有平台: 支持实时设备列表、统计信息、从实时设备和离线设备读取数据包
  2. 数据包处理:
    • 支持Berkeley数据包过滤器
    • 可以将数据包转储到Pcap文件
    • 支持Pcap和pcap-ng格式(使用libpcap >=1.1.0或npcap时)
  3. 性能优化:
    • 使用ReadOnlySpan<>避免内存分配和复制
    • 提供辅助方法将捕获的数据包转换为对象实例
  4. 其他特性:

应用示例

1. 列出可用的网络设备

C#
using SharpPcap; class Program { static void Main(string[] args) { // 获取所有可用的捕获设备 var devices = CaptureDeviceList.Instance; // 打印每个设备的信息 foreach (var dev in devices) { Console.WriteLine($"设备: {dev.Name}"); Console.WriteLine($"描述: {dev.Description}"); Console.WriteLine(); } } }

image.png

编辑
2025-10-05
C#
00

Humanizer 是一个强大的 .NET 库,旨在操作和显示字符串、枚举、日期、时间、时间跨度、数字和数量。它能够将开发人员编写的机器友好的数据转换为人类友好的格式,从而提高代码的可读性和用户体验。本文将详细介绍 Humanizer 的使用方法,并提供多个实用的例子。

安装

首先,通过 NuGet 包管理器安装 Humanizer:

C#
Install-Package Humanizer

字符串操作

驼峰命名转换

C#
using Humanizer; class Program { static void Main(string[] args) { string pascalCase = "ThisIsAPascalCaseString"; Console.WriteLine(pascalCase.Humanize()); string camelCase = "thisIsACamelCaseString"; Console.WriteLine(camelCase.Humanize()); string underscored = "this_is_an_underscored_string"; Console.WriteLine(underscored.Humanize()); } }

image.png

截断字符串

C#
string longText = "This is a very long text that needs to be truncated"; Console.WriteLine(longText.Truncate(20, "..."));

image.png

编辑
2025-10-05
C#
00

CsvHelper是一个用于读写CSV(逗号分隔值)文件的开源.NET库。它提供了简单而强大的API,使得处理CSV文件变得轻而易举。本文将详细介绍CsvHelper的使用方法,并提供多个实用的例子。

安装

首先,通过NuGet包管理器安装CsvHelper:

C#
Install-Package CsvHelper

image.png

编辑
2025-10-05
C#
00

MediatR是一个轻量级的中介者模式实现库,用于在.NET应用程序中处理进程内消息传递。它有助于降低代码耦合度,提高可维护性和可测试性。本文将深入探讨MediatR的使用方法,并提供多个实际示例。

MediatR的核心概念

在深入示例之前,让我们先了解MediatR的几个核心概念:

  1. 请求(Request): 表示要执行的操作。
  2. 处理程序(Handler): 负责处理特定类型的请求。
  3. 中介者(Mediator): 协调请求和处理程序之间的通信。

安装MediatR

首先,通过NuGet包管理器安装MediatR:

Markdown
dotnet add package MediatR

image.png

编辑
2025-10-05
C#
00

在C#的WinForms应用程序开发中,父子窗体之间的数据传递是一个常见且重要的话题。本文将详细介绍几种实现父子窗体传值的方法,并提供丰富的代码示例。

构造函数传值

这是最简单直接的方法,适用于在创建子窗体时就知道要传递的值的情况。

示例代码

C#
// 父窗体 public partial class ParentForm : Form { public ParentForm() { InitializeComponent(); } private void btnOpenChild_Click(object sender, EventArgs e) { string message = "Hello from Parent!"; ChildForm childForm = new ChildForm(message); childForm.Show(); } } // 子窗体 public partial class ChildForm : Form { public ChildForm(string message) { InitializeComponent(); lblMessage.Text = message; } }

image.png