class Program
{
static void Main(string[] args)
{
//Declare Variables
string name;
string breed;
string colour;
string gender;
string userChoice;
bool proceed;
//Initialize Variables
name = "";
breed = "";
colour = "";
gender = "";
proceed = true;
numberOfDogs = 0;
Dogs dogList = new Dogs();
do
{
Console.Write("Main Menu\n");
Console.WriteLine("--------------------------------------------------------");
Console.WriteLine("1. Display the name, breed, colour, and gender of the dog (if one already exists)");
Console.WriteLine("2. Add a new dog");
Console.WriteLine("3. Edit an existing dog");
Console.WriteLine("4. Exit the program");
userChoice = Console.ReadLine();
switch (userChoice)
{
case "A":
case "a":
{
dogList.Display();
break;
}
case "B":
case "b":
{
Console.Clear();
Console.Write("Please enter the dog's name: ");
name = Console.ReadLine();
Console.Write("Please enter the breed of the dog: ");
breed = Console.ReadLine();
Console.Write("Please enter the colour of the dog: ");
colour = Console.ReadLine();
Console.Write("Please enter the dog's gender: ");
gender = Console.ReadLine();
dogList = new Dogs(name, breed, colour, gender);
break;
}
case "C":
case "c":
{
dogList.Display();
dogList = new Dogs();
break;
}
case "D":
case "d":
{
proceed = false;
break;
}
}
} while (proceed);
}
}
}
我有另一个正在使用的代码,但我的老师希望我在此设置中使用它。当我运行她的示例时,它说的是同样的话……有人知道问题出在哪里吗?
我已经看了很多遍了,但似乎无法弄清楚。我是编码的初学者,因此有时很难解决问题...我已经通过电子邮件向老师发送了电子邮件,让她知道该示例,但她还没有回复我。如果有人可以帮助我,我将不胜感激!
class Dogs
{
//Declare Dog Variables
string name;
string breed;
string colour;
string gender;
public Dogs()
{
name = null;
breed = null;
colour = null;
gender = null;
Dogs dogList = new Dogs();
}
public Dogs(string dogName, string dogBreed, string dogColour, string dogGender)
{
name = dogName;
breed = dogBreed;
colour = dogColour;
gender = dogGender;
}
public void Display()
{
if (name == null || breed == null || colour == null || gender == null)
{
Console.Write("No dog record exists");
}
else
{
Console.WriteLine("The dogs name is: " + name);
Console.WriteLine("The breed of the dog is: " + breed);
Console.WriteLine("The colour of the dog is: " + colour);
Console.WriteLine("The dogs gender is: " + gender);
}
}
}
}
使用此行代码:
class Dogs
{
public Dogs()
{
// ...
Dogs dogList = new Dogs();
}
}
您正在创建对同一Dog
构造函数的递归调用,该调用将继续进行,直到不再为C#程序分配可用内存为止。
将在这种情况下发生StackOverflow
异常。