Math.Clamp
é um método que ajuda a manter um valor dentro de um range especifico de valores.
A definição da Microsoft é: Retorna o valor fixado ao intervalo inclusivo de min e max.
Isso quer dizer que se escolhermos um valor de mínimo (42) e um máximo de (4242), e usarmos o Math.Clamp
para validar o um número, a saída será sempre um valore entre estes dois limites.
Exemplo:
using System; namespace StaticMathOperations { class Program { static void Main(string[] args) { Console.WriteLine("Console Math"); int min = 42; int max = 4242; Console.WriteLine("With Math.Clamp"); MathClamp(57, min, max); MathClamp(4243, min, max); MathClamp(12, min, max); MathClamp(70, min, max); MathClamp(-8, min, max); Console.WriteLine("\nWithout Math.Clamp"); WithoutMathClamp(57, min, max); WithoutMathClamp(4243, min, max); WithoutMathClamp(12, min, max); WithoutMathClamp(70, min, max); WithoutMathClamp(-8, min, max); } public static void MathClamp(int testValue, int min, int max) { var result = Math.Clamp(testValue, min, max); Console.WriteLine($"Test Value: {testValue} - Exit Value: {result} - Bounderies: {min} and {max}"); } public static void WithoutMathClamp(int testValue, int min, int max) { int result; if (testValue <= min) { result = min; } else if(testValue >= max) { result = max; } else { result = testValue; } Console.WriteLine($"Test Value: {testValue} - Exit Value: {result} - Bounderies: {min} and {max}"); } } }
A alternativa para o método Math.Clamp
é uma série de validações que devem ser executadas nos valores. Esta validação foi demonstrada no método WithoutMathClamp()
acima.
Qualquer dúvida ou dicas, entre em contato: leandrolt@gmail.com
Principais referências
– https://docs.microsoft.com/pt-br/dotnet/api/system.math.clamp?view=net-5.0