私は学校のプロジェクトに取り組んでいます。ユーザーは、Persons オブジェクトを入力して、それらを Person 型の List に格納できます。別のクラスからリストを呼び出すと、リストが空になることを期待してください。
class SubMenu
{
CreatePersons cp;
List<Person> myList = new List<Person>();
public List<Person> MyList
{
get { return myList; }
}
string UserInput= null;
public void SMenu()
{
Boolean flag = true;
while (true)
{
Console.WriteLine("");
Console.WriteLine(" -------------------------------------------");
Console.WriteLine(" -|---------------------------------------|-");
Console.WriteLine(" -|- P. Create a Person -|-");
Console.WriteLine(" -|- S. Create a Student -|-");
Console.WriteLine(" -|- T. Create a Teacher -|-");
Console.WriteLine(" -|- A. Create Administrative Staff -|-");
Console.WriteLine(" -|- R. Return to Main Menu -|-");
Console.WriteLine(" -|---------------------------------------|-");
Console.WriteLine(" -------------------------------------------");
Console.Write(" Enter your choice: ");
UserInput = Console.ReadLine();
switch (UserInput.ToLower())
{
case "p": myList.Add(new Person("Johnny")); //For testing
Console.WriteLine(myList.Count); //For testing .. here count = 1 as it should be.
break;
case "s": Console.WriteLine("Creates and object of type Student.");
break;
これは、ユーザーが新しい Person を作成するクラスです。テスト用に Person を 1 つ作成しました。問題は、別のクラスからリストを呼び出すと、リストが空で、1 つのピアソンが含まれている必要があることです。これが他のクラスのコードです。
class MainMenu
{
Boolean flag = true;
SubMenu sm = new SubMenu();
public void MMenu()
{
while (true)
{
Console.WriteLine();
Console.WriteLine("Console Application v1.0 created by");
Console.WriteLine();
Console.WriteLine(" ---------------------------------------------------");
Console.WriteLine(" -|-------------- MENU ---------------------------|-");
Console.WriteLine(" -|-----------------------------------------------|-");
Console.WriteLine(" -|- 1 - Create a Person -|-");
Console.WriteLine(" -|- 2 - List all the Persons -|-");
Console.WriteLine(" -|- 3 - Search for a Person -|-");
Console.WriteLine(" -|- 4 - Display the number of Persons -|-");
Console.WriteLine(" -|- 5 - Exit -|-");
Console.WriteLine(" ---------------------------------------------------");
Console.Write(" Enter your choice: ");
string UserInput = Console.ReadLine();
Console.WriteLine();
int input;
if (int.TryParse(UserInput, out input))
{
switch (input)
{
case 1:Console.WriteLine("Case 1");
sm.SMenu();
break;
case 2:Console.WriteLine("Case 2"); //This should display the one, the current size of the List.
int size = sm.MyList.Count;
Console.WriteLine("Size :" + size);
break;
case 3: Console.WriteLine("Case 3");
問題を簡単に特定できるように、コメントを参照してください。
ご協力いただきありがとうございます。