浏览代码

进制转换支持负数

懒得勤快 5 年之前
父节点
当前提交
bf8de2e204

+ 4 - 4
Masuit.Tools.Core/Masuit.Tools.Core.csproj

@@ -138,11 +138,11 @@ github:https://github.com/ldqk/Masuit.Tools</Description>
 
   <ItemGroup>
     <PackageReference Include="HtmlAgilityPack" Version="1.11.24" />
-    <PackageReference Include="HtmlSanitizer" Version="5.0.319" />
+    <PackageReference Include="HtmlSanitizer" Version="5.0.331" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
-    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.4" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.4" />
-    <PackageReference Include="Microsoft.Extensions.Http" Version="3.1.4" />
+    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.5" />
+    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.5" />
+    <PackageReference Include="Microsoft.Extensions.Http" Version="3.1.5" />
     <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
     <PackageReference Include="SharpCompress" Version="0.25.1" />
     <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="4.7.0" />

+ 2 - 1
Masuit.Tools/Reflection/ClassHelper.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Linq.Expressions;
 using System.Reflection;
 using System.Reflection.Emit;
 
@@ -21,7 +22,7 @@ namespace Masuit.Tools.Reflection
         /// <returns>返回创建的类实例。</returns>  
         public static object CreateInstance(this Type t)
         {
-            return Activator.CreateInstance(t);
+            return Expression.Lambda(Expression.New(t.GetConstructors()[0])).Compile().DynamicInvoke();
         }
 
 

+ 11 - 4
Masuit.Tools/Strings/NumberFormater.cs

@@ -1,4 +1,5 @@
-using System;
+using Microsoft.EntityFrameworkCore.Internal;
+using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Linq;
@@ -51,7 +52,7 @@ namespace Masuit.Tools.Strings
 
             if (bin > 62)
             {
-                throw new ArgumentException("进制最大支持62进制");
+                throw new ArgumentException("默认进制最大支持62进制");
             }
             Characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".Substring(0, bin);
         }
@@ -64,9 +65,15 @@ namespace Masuit.Tools.Strings
         public string ToString(long number)
         {
             List<string> result = new List<string>();
+            if (number < 0)
+            {
+                number = -number;
+                result.Add("0");
+            }
+
             long t = number;
 
-            while (t > 0)
+            while (t != 0)
             {
                 var mod = t % Length;
                 t = Math.Abs(t / Length);
@@ -74,7 +81,7 @@ namespace Masuit.Tools.Strings
                 result.Insert(0, character);
             }
 
-            return string.Join("", result.ToArray());
+            return result.Join("");
         }
 
         /// <summary>