I have this code that asks the user for inputs and validates the inputs if they are Integers (no other inputs are allowed). I'd like to ask for some help in terms of elegance of the code or performance, or just the overall code.
Also, I have found myself repeating these lines of code
Console.Write("Enter weight of parcel: ");
string input = Console.ReadLine();
and I think I really need to refactor the code because of this, but can't think of a simple and straightforward way to refactor it.
Here is my code below:
class Program
{
private static int _depth = 0;
private static int _height = 0;
private static int _weight = 0;
private static int _width = 0;
private static bool _isInvalidInput = true;
static void Main(string[] args)
{
GetWeightInput();
GetHeightInput();
GetWidthInput();
GetDepthInput();
Console.ReadLine();
}
private static void GetWeightInput()
{
while(_isInvalidInput)
{
Console.Write("Enter weight of parcel: ");
string input = Console.ReadLine();
#region User Weight Input Validation
if (int.TryParse(input, out _weight))
{
_isInvalidInput = false;
//TODO: Add More Validations of User Input
}
else
{
Console.WriteLine("***Only Integer Inputs Are Allowed***");
_isInvalidInput = true;
}
#endregion User Weight Input Validation
}
_isInvalidInput = true;//reset value to true
}
private static void GetHeightInput()
{
while (_isInvalidInput)
{
Console.Write("Enter weight of parcel: ");
string input = Console.ReadLine();
#region User Weight Input Validation
if (int.TryParse(input, out _height))
{
_isInvalidInput = false;
//TODO: Add More Validations of User Input
}
else
{
Console.WriteLine("***Only Integer Inputs Are Allowed***");
_isInvalidInput = true;
}
#endregion User Weight Input Validation
}
_isInvalidInput = true;//reset value to true
}
private static void GetWidthInput()
{
while (_isInvalidInput)
{
Console.Write("Enter weight of parcel: ");
string input = Console.ReadLine();
#region User Weight Input Validation
if (int.TryParse(input, out _width))
{
_isInvalidInput = false;
//TODO: Add More Validations of User Input
}
else
{
Console.WriteLine("***Only Integer Inputs Are Allowed***");
_isInvalidInput = true;
}
#endregion User Weight Input Validation
}
_isInvalidInput = true;//reset value to true
}
private static void GetDepthInput()
{
while (_isInvalidInput)
{
Console.Write("Enter weight of parcel: ");
string input = Console.ReadLine();
#region User Weight Input Validation
if (int.TryParse(input, out _width))
{
_isInvalidInput = false;
//TODO: Add More Validations of User Input
}
else
{
Console.WriteLine("***Only Integer Inputs Are Allowed***");
_isInvalidInput = true;
}
#endregion User Weight Input Validation
}
_isInvalidInput = true;//reset value to true
}
}