Fix .NET Standard compatibility:
- Replace double.DegreesToRadians/RadiansToDegrees with Math-based conversions - Replace Random.Shared with thread-local Random for thread safety
This commit is contained in:
parent
8dd20b2cb8
commit
5f7b862d5e
3 changed files with 9 additions and 11 deletions
|
@ -26,8 +26,8 @@
|
|||
var input = _args[0].Value;
|
||||
decimal value = Convert.ToDecimal(input.Value);
|
||||
|
||||
// Convert radians to degrees
|
||||
return new FunctionValue(FunctionValueType.Numeric, double.RadiansToDegrees((double)value));
|
||||
// Convert radians to degrees (compatible with .NET Standard)
|
||||
return new FunctionValue(FunctionValueType.Numeric, (double)value * (180.0 / Math.PI));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
var input = _args[0].Value;
|
||||
decimal value = Convert.ToDecimal(input.Value);
|
||||
|
||||
// Convert degrees to radians
|
||||
return new FunctionValue(FunctionValueType.Numeric, double.DegreesToRadians((double)value));
|
||||
// Convert degrees to radians (compatible with .NET Standard)
|
||||
return new FunctionValue(FunctionValueType.Numeric, (double)value * (Math.PI / 180.0));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,13 +8,11 @@ namespace CSMic.StandardLibrary.Functions.Random
|
|||
{
|
||||
public abstract class RandomBase : FunctionBase
|
||||
{
|
||||
protected static System.Random RandomNumberGenerator
|
||||
{
|
||||
get
|
||||
{
|
||||
return System.Random.Shared;
|
||||
}
|
||||
}
|
||||
// Provide a thread-local random to approximate Random.Shared in .NET Standard
|
||||
private static readonly System.Threading.ThreadLocal<System.Random> s_threadLocalRandom =
|
||||
new System.Threading.ThreadLocal<System.Random>(() => new System.Random());
|
||||
|
||||
protected static System.Random RandomNumberGenerator => s_threadLocalRandom.Value!;
|
||||
|
||||
protected static decimal NextDecimal()
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue