mirror of
https://gitee.com/NewLifeX/X.git
synced 2025-12-06 09:58:57 +08:00
代码优化整理
This commit is contained in:
3
.github/copilot-instructions.md
vendored
3
.github/copilot-instructions.md
vendored
@@ -43,7 +43,8 @@
|
||||
4. if 单行:`if (x > 0) return;` (同一行无花括号)。多行使用花括号并换行。
|
||||
5. 文件组织:一个文件一个主要公共类型;必要时使用 `partial` 拆分平台相关实现。
|
||||
6. 禁止无意义的空白 & 尾随空格;保持 UTF-8 无 BOM。
|
||||
7. 不随意改动现有公共签名(破坏兼容需记录变更说明/迁移策略)。
|
||||
7. 不随意删除代码注释,可根据代码上下文修改注释;保留历史注释(如 `// TODO`、`// FIXME` 等)。
|
||||
8. 不随意改动现有公共签名(破坏兼容需记录变更说明/迁移策略)。
|
||||
|
||||
---
|
||||
## 6. 文档注释
|
||||
|
||||
@@ -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++)
|
||||
{
|
||||
// 去掉逗号分隔符
|
||||
|
||||
21
Readme.MD
21
Readme.MD
@@ -144,18 +144,17 @@ dotnet run
|
||||
|
||||
|
||||
|
||||
## 新生命开发团队
|
||||

|
||||
---
|
||||
# 新生命开发团队
|
||||

|
||||
|
||||
新生命团队(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
|
||||
微信公众号:
|
||||

|
||||

|
||||
|
||||
---
|
||||
> 如果本项目对你有帮助,欢迎 Star、分享给团队,或通过 Issue/PR 反馈改进建议。
|
||||
|
||||
Reference in New Issue
Block a user