0.443.0.409841

This commit is contained in:
CloneTrooper1019
2020-08-14 12:35:27 -05:00
parent 0a6c8f38d4
commit 0ca6738cb9
12 changed files with 512 additions and 2105 deletions

View File

@ -5,7 +5,7 @@ using System.Text;
internal static class Formatting
{
private static CultureInfo invariant => CultureInfo.InvariantCulture;
private static CultureInfo Invariant => CultureInfo.InvariantCulture;
public static string ToInvariantString(this float value)
{
@ -18,7 +18,7 @@ internal static class Formatting
else if (float.IsNaN(value))
result = "NAN";
else
result = value.ToString(invariant);
result = value.ToString(Invariant);
return result;
}
@ -34,75 +34,52 @@ internal static class Formatting
else if (double.IsNaN(value))
result = "NAN";
else
result = value.ToString(invariant);
result = value.ToString(Invariant);
return result;
}
public static string ToInvariantString(this int value)
{
return value.ToString(invariant);
return value.ToString(Invariant);
}
public static string ToInvariantString(this object value)
{
if (value is float)
switch (value)
{
float f = (float)value;
return f.ToInvariantString();
}
else if (value is double)
{
double d = (double)value;
return d.ToInvariantString();
}
else if (value is int)
{
int i = (int)value;
return i.ToInvariantString();
}
else
{
// Unhandled
return value.ToString();
case double d : return d.ToInvariantString();
case float f : return f.ToInvariantString();
case int i : return i.ToInvariantString();
default : return value.ToString();
}
}
public static float ParseFloat(string value)
{
float result;
if (value == "INF")
result = float.PositiveInfinity;
else if (value == "-INF")
result = float.NegativeInfinity;
else if (value == "NAN")
result = float.NaN;
else
result = float.Parse(value, invariant);
return result;
switch (value)
{
case "NAN" : return float.NaN;
case "INF" : return float.PositiveInfinity;
case "-INF" : return float.NegativeInfinity;
default : return float.Parse(value, Invariant);
}
}
public static double ParseDouble(string value)
{
double result;
if (value == "INF")
result = double.PositiveInfinity;
else if (value == "-INF")
result = double.NegativeInfinity;
else if (value == "NAN")
result = double.NaN;
else
result = double.Parse(value, invariant);
return result;
switch (value)
{
case "NAN" : return double.NaN;
case "INF" : return double.PositiveInfinity;
case "-INF" : return double.NegativeInfinity;
default : return double.Parse(value, Invariant);
}
}
public static int ParseInt(string s)
{
return int.Parse(s, invariant);
return int.Parse(s, Invariant);
}
public static bool FuzzyEquals(this float a, float b, float epsilon = 10e-5f)

View File

@ -7,8 +7,8 @@ namespace RobloxFiles.Utility
// This is a lazy helper class to disambiguate between FieldInfo and PropertyInfo
internal class ImplicitMember
{
private static BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.IgnoreCase;
private object member;
private const BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.IgnoreCase;
private readonly object member;
private ImplicitMember(FieldInfo field) { member = field; }
private ImplicitMember(PropertyInfo prop) { member = prop; }