C#开发:把业务逻辑写成应用

用LINQ筛选数据,用异步方法等待接口响应,用事件连接界面与业务。通过这些开发任务理解C#的类型系统、委托与异常处理,逐步写出结构清晰的.NET应用。

阅读283
发布人iPython
发布时间2026-09-24
相关标签:
C#开发:把业务逻辑写成应用

C#利用WebBrowser控件实现网页截图的代码示例

本文介绍如何使用C#中的System.Windows.Forms.WebBrowser控件,通过模拟浏览器加载指定URL并渲染页面,进而将网页内容捕获为位图(Bitmap)对象。代码展示了STA线程初始化、DOM渲染等待、Canvas尺寸动态调整及最终保存为高清JPG文件的完整逻辑,适用于Windows桌面环境下的网页快照需求。

C#中通过Unicode编码判断字符是否为中文的方法

在C#开发中,利用Unicode编码范围是判断单个字符是否为中文的可靠方式。本文将介绍如何获取字符的Unicode码位(UTF-32),并与CJK统一表意字符的范围(0x4E00-0x9FFF)进行比对,从而快速实现中文识别功能。该方法适用于需要精确处理字符串索引的场景。

C#中属性与成员变量的核心区别及封装优势

在C#开发中,正确区分成员变量(Field)与属性(Property)是实现良好封装的关键。成员变量直接存储数据,而属性通过get/set访问器提供间接访问机制,允许在读写时插入验证逻辑或执行其他操作。本文详解两者在面向对象设计中的职责差异,阐述如何利用属性保护内部状态并确保数据合法性。

C#中利用DateTime.ToFileTime生成时间戳作为唯一文件名

本文介绍在C#开发中,如何利用DateTime对象的ToFileTime()方法获取高精度Windows文件时间戳,并将其转换为字符串以生成具有时效性且不易冲突的文件名。该数值基于1601年起的100纳秒间隔,适用于需要按时间顺序或防覆盖的文件命名场景。

C#使用COM接口调用Excel宏并导出报表

本文介绍如何使用C#通过Office COM组件自动化执行Excel VBA宏。主要步骤包括:设置线程文化为en-US,初始化Excel实例并加载宏模板,将DataTable数据填充至指定Sheet页,运行VBA宏进行报表加工,最后保存结果文件并严格释放COM对象引用以防止后台进程残留。

C# LINQ 查询关键字详解与实战代码

本文详细介绍 C# LINQ (Language Integrated Query) 的核心查询关键字。通过包含 from、where、select、orderby、group、join、let 等子句的完整 C# 代码示例,演示如何从集合中筛选、排序、分组及连接数据。涵盖复合 from、内部联接、左外部联接等高级用法,帮助开发者快速掌握 LINQ 语法并应用于实际项目。

C# 调用免费 API 生成二维码卡片示例

本文介绍如何使用 C# 代码调用第三方免费二维码 API 生成包含联系人信息的二维码。通过构建 MECARD 格式参数,结合背景、Logo 等选项,快速实现企业名片或联系方式的二维码转换,适用于网页或应用集成。

C#获取鼠标光标屏幕坐标完整示例

在C#开发中,通过引入user32.dll中的GetCursorPos函数可以准确获取鼠标光标的屏幕绝对坐标。本文提供了适用于WinForm和WPF环境的完整代码实现,包括必要的StructLayout定义及P/Invoke调用方法,助你快速集成位置追踪功能。

C#泛型实战:从零构建类型安全的线性链表

C#的泛型机制旨在解决集合类的类型安全与性能问题。本文通过对比基于Object基类的链表实现与泛型链表,深入解析装箱、拆箱带来的性能损耗及代码冗余,并演示如何利用泛型参数T重构Node与LinkedList类,实现高效、类型安全的自定义集合。

C#使用Image.Save()按指定质量保存JPG图片的方法

在C#中使用System.Drawing.Image.Save方法默认JPEG压缩质量为75,可能导致图片模糊。通过配置EncoderParameter和ImageCodecInfo,可自定义1至100的质量参数来实现高精度保存。本文提供实现该功能的完整代码及调用示例,解决图片失真问题。

C# Process.Start报错 Unknown error (0xffffffff) 的解决方法

在C#中使用System.Diagnostics.Process.Start启动外部程序时,若遇到“Unknown error (0xffffffff)”异常,通常发生在以Local System账户运行的服务中。根本原因往往与默认使用Windows Shell执行有关。通过设置ProcessStartInfo对象的UseShellExecute属性为false即可解决该问题,本文提供具体的代码实现步骤。