So, I have finished majority of my code but one criteria required me to use a Procedure. So, when i decided to use a procedure i encountered several of problems. The main issue was that the variables which i have included in the first method(Generate Number
and number
) wont show up in my other methods.So can i make these variables global so that they work in all of my methods or is there another alternative solution to this problem?
Note: This is not my full code its just a piece out of it.
class Program
{
static void Main(string[] args)
{
Random GenerateNumber = new Random();
int[] number = new int[6];
Generating();
Ordering();
}
static void Generating()
{
Console.Clear();
Console.WriteLine("Stage 1 : 6 random numbers have been generated:\n");
for (int c = 0; c < number.Length; c++)
{
if (number[c] == 0)
{
number[c] = GenerateNumber.Next(1, 50);
Console.Write("Random number " + (c + 1) + " = " + number[c] + "\n");
}
}
}
static void Ordering()
{
Console.Clear();
for (int i = 0; i < number.Length; i++)
{
Array.Sort(number);
Console.Write("Number " + (i + 1) + " = " + number[i] + "\n");
}
}
}
Make them global is easiest but as said above, not the best way.
class Program
{
static Random GenerateNumber = new Random();
static int[] number = new int[6];
static void Main(string[] args)
{
Generating();
Ordering();
}
Better to use parameters
class Program
{
static void Main(string[] args)
{
Random GenerateNumber = new Random();
int[] number = new int[6];
Generating(GenerateNumber, number);
Ordering(number);
}
static void Generating(Random generateNumber, int[] number)
{
Console.Clear();
Console.WriteLine("Stage 1 : 6 random numbers have been generated:\n");
for (int c = 0; c < number.Length; c++)
{
if (number[c] == 0)
{
number[c] = generateNumber.Next(1, 50);
Console.Write("Random number " + (c + 1) + " = " + number[c] + "\n");
}
}
}
static void Ordering(int[] number)
{
Console.Clear();
for (int i = 0; i < number.Length; i++)
{
Array.Sort(number);
Console.Write("Number " + (i + 1) + " = " + number[i] + "\n");
}
}
}