I have to make a program which generates lotto ticket then checks to see if there is a winner. I am having problems even calling my method which is only a simple menu function.
This is the error:
Error 1 An object reference is required for the non-static field, method, or property
I am not sure where i have went wrong but i think its to do with visibility.
I have tried changing some functions to public static but that has not worked.
class Program
{
bool quitFlag = false;
SortedSet<int> winningNumbers = new SortedSet<int>();
List<CTicket> ticketList = new List<CTicket>();
static void Main(string[] args)
{
DoMenu();
}
public static void GenerateTickets(List<CTicket> l)
{
Random Rand = new Random();
for(int i=0; i <1000; i++)
{
SortedSet<int> num = new SortedSet<int>();
do
{
num.Add(Convert.ToInt32(Rand.Next(1,42)));
}
while(num.Count <=6);
CTicket ticket = new CTicket(i,num);
l.Add(ticket);
ticket.printTicket();
}
}
public static void DrawWinningNumbers(SortedSet<int> winningNumbers)
{
for(int i=1; i <6; i++)
{
Random Rand = new Random();
winningNumbers.Add(Convert.ToInt32(Rand.Next(1,42)));
while(winningNumbers.Count <=6);
Console.Write("The winning numbers are: {");
foreach (int x in winningNumbers)
{
Console.Write(x + ", ");
}
Console.WriteLine();
}
}
void DoQuit()
{
quitFlag = true;
}
int ShowMenu()
{
int option;
Console.WriteLine("\t-------------------------------------------------\n");
Console.WriteLine( "\t\t\t Queue Application\n\n");
Console.WriteLine("\t1. \tGenerate tickets\n");
Console.WriteLine("\t2. \tDisplay all tickets\n");
Console.WriteLine("\t3. \tGenerate Winning Numbers\n");
Console.WriteLine("\t4. \tPrint queue\n");
Console.WriteLine("\t5. \tReverse queue\n");
Console.WriteLine("\t6. \tExit\n");
option = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
Console.WriteLine();
return option;
}
public static void DoMenu()
{
do
{
int option;
option = ShowMenu();
switch (option)
{
case 1:
GenerateTickets(ticketList);
//system("cls");
break;
case 2:
//system("cls");
break;
case 3:
DrawWinningNumbers(winningNumbers);
//system("cls");
break;
case 4:
break;
case 5:
//system("cls");
break;
case 6:
DoQuit();
break;
default:
//system("cls");
Console.WriteLine("invalid option!\n");
break;
}
} while (quitFlag != true);
}
}