代码优化整理

This commit is contained in:
石头
2025-08-16 00:29:54 +08:00
parent b23d599f06
commit 9e836cbb72
3 changed files with 35 additions and 65 deletions

View File

@@ -43,7 +43,8 @@
4. if 单行:`if (x > 0) return;` (同一行无花括号)。多行使用花括号并换行。
5. 文件组织:一个文件一个主要公共类型;必要时使用 `partial` 拆分平台相关实现。
6. 禁止无意义的空白 & 尾随空格;保持 UTF-8 无 BOM。
7. 不随意改动现有公共签名(破坏兼容需记录变更说明/迁移策略)。
7. 不随意删除代码注释,可根据代码上下文修改注释;保留历史注释(如 `// TODO``// FIXME`)。
8. 不随意改动现有公共签名(破坏兼容需记录变更说明/迁移策略)。
---
## 6. 文档注释

View File

@@ -103,7 +103,7 @@ public static class Utility
/// <returns></returns>
public static DateTimeOffset Trim(this DateTimeOffset value, String format = "s") => new(Convert.Trim(value.DateTime, format), value.Offset);
/// <summary>时间日期转为yyyy-MM-dd HH:mm:ss完整字符串对UTC时间加后缀</summary>
/// <summary>时间日期转为yyyy-MM-dd HH:mm:ss完整字符串</summary>
/// <remarks>最常用的时间日期格式,可以无视各平台以及系统自定义的时间格式</remarks>
/// <param name="value">待转换对象</param>
/// <returns></returns>
@@ -241,20 +241,14 @@ public class DefaultConvert
if (value is Byte[] buf)
{
if (buf == null || buf.Length <= 0) return defaultValue;
if (buf.Length == 0) return defaultValue;
switch (buf.Length)
{
case 1:
return buf[0];
case 2:
return BitConverter.ToInt16(buf, 0);
case 3:
return BitConverter.ToInt32([buf[0], buf[1], buf[2], 0], 0);
case 4:
return BitConverter.ToInt32(buf, 0);
default:
break;
case 1: return buf[0];
case 2: return BitConverter.ToInt16(buf, 0);
case 3: return BitConverter.ToInt32([buf[0], buf[1], buf[2], (Byte)0], 0);
case 4: return BitConverter.ToInt32(buf, 0);
}
}
@@ -325,22 +319,14 @@ public class DefaultConvert
if (value is Byte[] buf)
{
if (buf == null || buf.Length <= 0) return defaultValue;
if (buf.Length == 0) return defaultValue;
switch (buf.Length)
{
case 1:
return buf[0];
case 2:
return BitConverter.ToInt16(buf, 0);
case 3:
return BitConverter.ToInt32([buf[0], buf[1], buf[2], 0], 0);
case 4:
return BitConverter.ToInt32(buf, 0);
case 8:
return BitConverter.ToInt64(buf, 0);
default:
break;
case 1: return buf[0];
case 2: return BitConverter.ToInt16(buf, 0);
case 3: return BitConverter.ToInt32([buf[0], buf[1], buf[2], (Byte)0], 0);
case 4: return BitConverter.ToInt32(buf, 0);
case 8: return BitConverter.ToInt64(buf, 0);
}
}
@@ -391,8 +377,7 @@ public class DefaultConvert
#endif
}
if (value is Byte[] buf && buf.Length <= 8)
return BitConverter.ToDouble(buf, 0);
if (value is Byte[] buf && buf.Length <= 8) return BitConverter.ToDouble(buf, 0);
try
{
@@ -443,39 +428,28 @@ public class DefaultConvert
if (value is Byte[] buf)
{
if (buf == null || buf.Length <= 0) return defaultValue;
if (buf.Length == 0) return defaultValue;
switch (buf.Length)
{
case 1:
return buf[0];
case 2:
return BitConverter.ToInt16(buf, 0);
case 3:
return BitConverter.ToInt32([buf[0], buf[1], buf[2], 0], 0);
case 4:
return BitConverter.ToInt32(buf, 0);
case 1: return buf[0];
case 2: return BitConverter.ToInt16(buf, 0);
case 3: return BitConverter.ToInt32([buf[0], buf[1], buf[2], (Byte)0], 0);
case 4: return BitConverter.ToInt32(buf, 0);
default:
// 凑够8字节
if (buf.Length < 8)
{
var bts = Pool.Shared.Rent(8);
Buffer.BlockCopy(buf, 0, bts, 0, buf.Length);
var dec = BitConverter.ToDouble(bts, 0).ToDecimal();
Pool.Shared.Return(bts);
return dec;
}
return BitConverter.ToDouble(buf, 0).ToDecimal();
}
}
if (value is Double d)
{
return Double.IsNaN(d) ? defaultValue : (Decimal)d;
}
if (value is Double d) return Double.IsNaN(d) ? defaultValue : (Decimal)d;
try
{
@@ -645,13 +619,10 @@ public class DefaultConvert
if (str.IsNullOrEmpty()) return defaultValue;
if (DateTimeOffset.TryParse(str, out var dt)) return dt;
return str.Contains('-') && DateTimeOffset.TryParseExact(str, "yyyy-M-d", null, DateTimeStyles.None, out dt)
? dt
: str.Contains('/') && DateTimeOffset.TryParseExact(str, "yyyy/M/d", null, DateTimeStyles.None, out dt)
? dt
: DateTimeOffset.TryParseExact(str, "yyyyMMddHHmmss", null, DateTimeStyles.None, out dt)
? dt
: DateTimeOffset.TryParseExact(str, "yyyyMMdd", null, DateTimeStyles.None, out dt) ? dt : defaultValue;
return str.Contains('-') && DateTimeOffset.TryParseExact(str, "yyyy-M-d", null, DateTimeStyles.None, out dt) ? dt :
str.Contains('/') && DateTimeOffset.TryParseExact(str, "yyyy/M/d", null, DateTimeStyles.None, out dt) ? dt :
DateTimeOffset.TryParseExact(str, "yyyyMMddHHmmss", null, DateTimeStyles.None, out dt) ? dt :
DateTimeOffset.TryParseExact(str, "yyyyMMdd", null, DateTimeStyles.None, out dt) ? dt : defaultValue;
}
// 特殊处理整数Unix秒绝对时间差不考虑UTC时间和本地时间。
@@ -683,7 +654,6 @@ public class DefaultConvert
private static Int32 TrimNumber(ReadOnlySpan<Char> input, Span<Char> output)
{
var idx = 0;
for (var i = 0; i < input.Length; i++)
{
// 去掉逗号分隔符

View File

@@ -144,18 +144,17 @@ dotnet run
## 新生命开发团队
![XCode](https://newlifex.com/logo.png)
---
# 新生命开发团队
![XCode](https://newlifex.com/logo.png)
新生命团队NewLife成立于2002年是新时代物联网行业解决方案提供者致力于提供软硬件应用方案咨询、系统架构规划与开发服务。
团队主导的80多个开源项目已被广泛应用于各行业Nuget累计下载量高达400余万次。
团队开发的大数据中间件NewLife.XCode、蚂蚁调度计算平台AntJob、星尘分布式平台Stardust、缓存队列组件NewLife.Redis以及物联网平台FIoT均成功应用于电力、高校、互联网、电信、交通、物流、工控、医疗、文博等行业为客户提供了大量先进、可靠、安全、高质量、易扩展的产品和系统集成服务。
新生命团队NewLife成立于2002年是新时代物联网行业解决方案提供者致力于提供软硬件应用方案咨询、系统架构规划与开发服务。NuGet 累计下载 413万+。团队核心组件XCode / Redis / Stardust / AntJob / IoT 等)已在电力、工业、交通、环保、医疗、文博等行业大规模应用。
我们将不断通过服务的持续改进成为客户长期信赖的合作伙伴通过不断的创新和发展成为国内优秀的IoT服务供应商。
我们持续改进,力求成为值得长期信赖的 .NET / IoT / 分布式技术伙伴。
`新生命团队始于2002年部分开源项目具有20年以上漫长历史源码库保留有2010年以来所有修改记录`
网站https://newlifex.com
开源https://github.com/newlifex
QQ群1600800/1600838
网站https://newlifex.com 开源组织https://github.com/NewLifeX
微信公众号:
![智能大石头](https://newlifex.com/stone.jpg)
![智能大石头](https://newlifex.com/stone.jpg)
---
> 如果本项目对你有帮助,欢迎 Star、分享给团队或通过 Issue/PR 反馈改进建议。