2025-10-07
C#
00

高级C#开发人员经常利用反射和泛型来简化代码,提高效率。这些技巧可以帮助我们避免编写大量重复代码,同时提高代码的可维护性。本文将介绍几个使用反射和泛型的高级技巧,并提供详细的示例。

1. 使用Lambda表达式获取属性名称

在C#中,我们经常需要引用对象的属性名称。直接使用字符串硬编码属性名称可能会导致在重构时出现问题。使用Lambda表达式可以安全地获取属性名称,即使在重命名属性时也能保持代码的正确性。

C#
// 使用示例 class Person { public string Name { get; set; } } internal class Program { public static string PropertyName<TEntity, TProp>(Expression<Func<TEntity, TProp>> expression) { MemberExpression member = expression.Body as MemberExpression; return member.Member.Name; } static void Main(string[] args) { var nameProp = PropertyName((Person p) => p.Name); Console.WriteLine(nameProp); // 输出: "Name" } }

image.png

2025-10-07
C#
00

在现代应用程序中,及时更新不同数据库之间的数据至关重要。本文将介绍如何在 SQL Server 中使用 C# 实现数据的实时同步。我们将使用 SQLDependency 类来监听数据库表的变化,并将这些变化实时地同步到另一张表中。

前提条件

在开始之前,请确保已经设置好两个 SQL Server 数据库:

  • SourceDB: 包含你需要监听的表。
  • TargetDB: 目标数据库,用于同步数据。

配置 SQL Server

首先,需要启用 SQL Server 的查询通知服务,以便支持 SQLDependency。请使用以下命令启用数据库服务代理:

查看

SQL
SELECT name, is_broker_enabled FROM sys.databases;
SQL
ALTER DATABASE SourceDB SET ENABLE_BROKER;

编写 C# 程序

下面的 C# 程序将使用 SQLDependency 来监听 SourceDB 中的 SourceTable 表的变化。我们将在数据插入时同步到 TargetDB 中的 TargetTable

2025-10-07
C#
00

AngleSharp 是一个功能强大的 .NET 库,用于解析 HTML、XML 和 CSS。它提供了一个直观的 API,使得在 C# 中处理 Web 文档变得简单高效。本文将详细介绍 AngleSharp 的使用方法,并提供多个实用的例子。

1. 安装

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

C#
Install-Package AngleSharp

image.png

2. 基本用法

2.1 解析 HTML 文档

C#
using AngleSharp; using AngleSharp.Dom; using System; class Program { static async Task Main(string[] args) { // 配置 AngleSharp var config = Configuration.Default; // 创建一个新的上下文 var context = BrowsingContext.New(config); // 解析 HTML 字符串 var html = "<html><body><h1>Hello, AngleSharp!</h1></body></html>"; var document = await context.OpenAsync(req => req.Content(html)); // 获取并打印 h1 元素的文本 var h1 = document.QuerySelector("h1"); Console.WriteLine(h1.TextContent); // 输出: Hello, AngleSharp! } }

image.png

2025-10-06
C#
00

ClosedXML 是一个用于创建和操作 Microsoft Excel 电子表格的 .NET 库。它提供了一个简单而直观的 API,使得在 C# 中处理 Excel 文件变得轻而易举。本文将详细介绍 ClosedXML 的使用方法,并提供多个实用的例子。

安装

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

PowerShell
Install-Package ClosedXML

image.png

基本用法

创建新的工作簿和工作表

C#
static void Main(string[] args) { using (var workbook = new XLWorkbook()) { var worksheet = workbook.Worksheets.Add("Sample Sheet"); worksheet.Cell("A1").Value = "Hello World!"; workbook.SaveAs("HelloWorld.xlsx"); } Console.WriteLine("Excel file created successfully!"); }

image.png

2025-10-06
C#
00

简介

ColorListView 是一个继承自 ListView 的自定义控件,它提供了更丰富的单元格样式设置功能。这个控件允许用户为每个单元格设置自定义的背景颜色、填充百分比和图标。通过重写绘制方法,ColorListView 实现了这些自定义功能,同时保留了原有 ListView 的基本特性。

主要特性

  1. 自定义单元格背景颜色
  2. 可调节的背景填充百分比
  3. 支持为单元格添加自定义图标
  4. 保留原有的选中和焦点状态显示

实现细节

CellInfo 类

CellInfo 是一个私有内部类,用于存储每个单元格的自定义信息:

C#
private class CellInfo { public Color BackColor { get; set; } public float FillPercentage { get; set; } public Image Icon { get; set; } public CellInfo(Color backColor, float fillPercentage, Image icon = null) { BackColor = backColor; FillPercentage = Math.Max(0, Math.Min(100, fillPercentage)) / 100f; Icon = icon; } }