恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

C# 代码片段(一):文件、字符串、时间与序列化常用写法

  • 首页
  • 资讯中心
  • /
  • C# 代码片段(一):文件、字符串、时间与序列化常用写法

相关资讯

CLIP与DINO级联融合:不确定性感知的深度伪造图像检测泛化新方案 2026/10/15 14:06:13
Java对象排序:Comparable与Comparator深度解析 2026/10/15 14:01:13
企业智能客服系统建设成本拆解:4款主流方案的TCO分析与技术选型 2026/10/15 14:01:13

最新资讯

REA实战完整指南(2026年10月):从 Electron 静态分析到原生二进制与浏览器追踪
2011-2025年各省互联网普及率、移动电话普及率数据
金蝶云星空k3cloud插件开发入门:从环境搭建到事件触发
蓝桥杯真题适配QDUOJ的可部署题库工程包
验证平台搭建-urandom_range错误用法
AI重构Next.js:7天实现400%性能提升的技术解析

今日推荐

AI视频生成的时间一致性难题与时空建模演进
基于bbox的PDF文档解析:多栏重排与水印过滤实战
探矿数据进RAG前的清洗全攻略:TXT、Word、PDF、网页四类文档处理实践

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

C# 代码片段(一):文件、字符串、时间与序列化常用写法

发布时间:2026/10/15 14:06:13
C# 代码片段(一):文件、字符串、时间与序列化常用写法 代码片段库第一篇。整理 C#/.NET 日常开发中最常用、可直接复制的片段文件操作、字符串与时间处理、加密与序列化。每一段都附带使用示例后续会持续更新。1. 安全读取文件带编码与异常处理// 读取文件避免 FileNotFoundException 直接崩 string path C:\data\config.json; if (File.Exists(path)) { string json File.ReadAllText(path, Encoding.UTF8); Console.WriteLine(json); } else { Console.WriteLine(文件不存在); }相关阅读C# 代码片段二WPF 桌面开发高频写法。2. 复制整个目录递归public static void CopyDirectory(string sourceDir, string destDir) { Directory.CreateDirectory(destDir); foreach (string file in Directory.GetFiles(sourceDir)) { File.Copy(file, Path.Combine(destDir, Path.GetFileName(file)), overwrite: true); } foreach (string dir in Directory.GetDirectories(sourceDir)) { CopyDirectory(dir, Path.Combine(destDir, Path.GetFileName(dir))); } }3. 文件大小格式化public static string FormatSize(long bytes) { string[] units { B, KB, MB, GB, TB }; double size bytes; int unit 0; while (size 1024 unit units.Length - 1) { size / 1024; unit; } return ${size:0.##} {units[unit]}; } // 用法FormatSize(1536) → 1.5 KB4. 时间戳转换Unix 秒 ↔ DateTime// Unix 秒 → DateTime本地时区 DateTime FromUnix(long unixSeconds) DateTimeOffset.FromUnixTimeSeconds(unixSeconds).ToLocalTime().DateTime; // DateTime → Unix 秒 long ToUnix(DateTime dt) new DateTimeOffset(dt).ToUnixTimeSeconds();5. 时间范围判断是否在指定时间段内// 判断当前时间是否在 08:30 ~ 18:00 之间 bool IsInWorkingHours(DateTime now, TimeSpan start, TimeSpan end) { var t now.TimeOfDay; return t start t end; }6. JSON 序列化 / 反序列化System.Text.Jsonusing System.Text.Json; var options new JsonSerializerOptions { PropertyNamingPolicy JsonNamingPolicy.CamelCase, // 驼峰命名 WriteIndented true }; // 序列化 string json JsonSerializer.Serialize(obj, options); // 反序列化 var obj JsonSerializer.DeserializeMyClass(json, options); // 解析未知结构动态 using var doc JsonDocument.Parse(json); string name doc.RootElement.GetProperty(name).GetString() ?? ;7. MD5 / SHA256 哈希using System.Security.Cryptography; public static string Md5(string input) Convert.ToHexString(MD5.HashData(Encoding.UTF8.GetBytes(input))).ToLower(); public static string Sha256(string input) Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(input))).ToLower(); // .NET 8 推荐用 HashData避免每次创建对象8. 字符串判空与默认值string name input.Trim(); if (string.IsNullOrWhiteSpace(name)) name 默认值; // 或一行 string name2 string.IsNullOrWhiteSpace(input) ? 默认值 : input.Trim();9. 路径处理安全拼接// 别用字符串拼接路径用 Path.Combine string fullPath Path.Combine(baseDir, uploads, fileName); // 获取扩展名 / 文件名 string ext Path.GetExtension(fileName); // .json string name Path.GetFileNameWithoutExtension(fileName); // config // 防止路径穿越攻击 string safe Path.GetFullPath(Path.Combine(baseDir, fileName)); if (!safe.StartsWith(Path.GetFullPath(baseDir))) throw new UnauthorizedAccessException(非法路径);10. 批量执行 重试简单版public static T RetryT(FuncT action, int times 3, int delayMs 500) { for (int i 0; i times; i) { try { return action(); } catch (Exception) when (i times - 1) { Thread.Sleep(delayMs * (i 1)); // 递增等待 } } return action(); // 最后一次不再吞异常 }以上片段基于 .NET 8可直接粘贴使用。下一篇计划整理 WPF / WinForms 桌面端常用片段绑定、转换器、扫码枪有想看的主题欢迎评论区留言。相关阅读C# 代码片段三WinForms 桌面开发常用写法。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号