C# 无法打印arraylist或list的元素
当我调用ReadList函数时,它不打印元素,我做错了什么?我甚至尝试使用普通列表。我想做的是,如果我通过CreateCount函数创建了两个帐户,我想通过ReadList打印它们C# 无法打印arraylist或list的元素,c#,C#,当我调用ReadList函数时,它不打印元素,我做错了什么?我甚至尝试使用普通列表。我想做的是,如果我通过CreateCount函数创建了两个帐户,我想通过ReadList打印它们 namespace Bank { class Program { static void Main() { int option; do { Men
namespace Bank
{
class Program
{
static void Main()
{
int option;
do
{
Menu1 menu1 = new Menu1();
Account account = new Account();
option = menu1.CallMenu1();
if (option == 1)
{
account.CreateAccount();
}else if (option == 2) {
account.ReadList();
break;
}
else
{
break;
}
} while (true);
}
}
class Account
{
int AccountNumber { get; set; }
string Name { get; set; }
float Balance { get; set; }
public void CreateAccount()
{
int AccountNumberInput;
string NameInput;
float BalanceInput;
ArrayList list = new ArrayList();
Console.WriteLine("put id");
AccountNumberInput = int.Parse(Console.ReadLine());
Console.WriteLine("type name");
NameInput =Console.ReadLine();
Console.WriteLine("type balance");
BalanceInput = float.Parse(Console.ReadLine());
list.Add(AccountNumberInput);
list.Add(NameInput);
list.Add(BalanceInput);
}
public void ReadList()
{
ArrayList list = new ArrayList();
foreach (string c in list)
{
Console.WriteLine(c);
}
}
}
}
您的
CreateAccount
方法执行以下操作:
- 创建一个新列表
- 填充列表
- 这张单子没什么用
ReadList
方法执行以下操作:
- 创建一个新的(空)列表
- 打印列表的内容
CreateAccount()
中创建的列表从未在方法之外进行通信-您希望ReadList()
方法如何知道它
最简单的更改是使CreateAccount()
返回它创建的列表,然后更改ReadList
以接受ArrayList
作为参数。您需要更改Main
方法,将CreateAccount
的结果存储在局部变量中,然后在调用该变量时将其传递给ReadList
然而,除此之外:
- 我会避免在任何新代码中使用
。许多年前,它被ArrayList
取代List
- 您的
方法肯定应该做到它所说的:创建一个帐户。它可能是一个返回CreateAccount
。。。然后,您的帐户的静态方法
方法可以是一个没有任何参数的ReadList
实例方法,因为您将在PrintDetails
返回的实例上调用它CreateAccount
如果有人试图在创建帐号之前打印帐号,你应该考虑一下你想做的事情…
CreateAccount
方法执行以下操作:
- 创建一个新列表
- 填充列表
- 这张单子没什么用
ReadList
方法执行以下操作:
- 创建一个新的(空)列表
- 打印列表的内容
CreateAccount()
中创建的列表从未在方法之外进行通信-您希望ReadList()
方法如何知道它
最简单的更改是使CreateAccount()
返回它创建的列表,然后更改ReadList
以接受ArrayList
作为参数。您需要更改Main
方法,将CreateAccount
的结果存储在局部变量中,然后在调用该变量时将其传递给ReadList
然而,除此之外:
- 我会避免在任何新代码中使用
。许多年前,它被ArrayList
取代List
- 您的
方法肯定应该做到它所说的:创建一个帐户。它可能是一个返回CreateAccount
。。。然后,您的帐户的静态方法
方法可以是一个没有任何参数的ReadList
实例方法,因为您将在PrintDetails
返回的实例上调用它CreateAccount
如果有人试图在创建帐号之前打印帐号,你应该考虑一下你想做的事情…
因为你的课错了。您正在其中一个方法中初始化列表。一旦方法完成执行,它内部的所有内容都将从内存中卸载 要使其工作,必须向类本身添加一个字段/属性,该字段/属性包含数据并可由类的所有方法使用
class Account
{
int AccountNumber { get; set; }
string Name { get; set; }
float Balance { get; set; }
//added this line
private ArrayList list {get;set;}
public void CreateAccount()
{
int AccountNumberInput;
string NameInput;
float BalanceInput;
//notice this
list = new ArrayList();
Console.WriteLine("put id");
AccountNumberInput = int.Parse(Console.ReadLine());
Console.WriteLine("type name");
NameInput =Console.ReadLine();
Console.WriteLine("type balance");
BalanceInput = float.Parse(Console.ReadLine());
list.Add(AccountNumberInput);
list.Add(NameInput);
list.Add(BalanceInput);
}
public void ReadList()
{
//removed ArrayList list = new ArrayList();
foreach (string c in list)
{
Console.WriteLine(c);
}
}
}
因为你的课错了。您正在其中一个方法中初始化列表。一旦方法完成执行,它内部的所有内容都将从内存中卸载 要使其工作,必须向类本身添加一个字段/属性,该字段/属性包含数据并可由类的所有方法使用
class Account
{
int AccountNumber { get; set; }
string Name { get; set; }
float Balance { get; set; }
//added this line
private ArrayList list {get;set;}
public void CreateAccount()
{
int AccountNumberInput;
string NameInput;
float BalanceInput;
//notice this
list = new ArrayList();
Console.WriteLine("put id");
AccountNumberInput = int.Parse(Console.ReadLine());
Console.WriteLine("type name");
NameInput =Console.ReadLine();
Console.WriteLine("type balance");
BalanceInput = float.Parse(Console.ReadLine());
list.Add(AccountNumberInput);
list.Add(NameInput);
list.Add(BalanceInput);
}
public void ReadList()
{
//removed ArrayList list = new ArrayList();
foreach (string c in list)
{
Console.WriteLine(c);
}
}
}
出于兴趣,为什么您仍然使用
ArrayList
?12年前的2005年,它被List
取代;foreach(列表中的字符串c)-您从未将任何内容放入列表中
,那么您希望打印出什么出于兴趣,ReadList
中的list
变量与CreateAccount
中的变量不同,为什么您仍然使用ArrayList
?12年前的2005年,它被List
取代;foreach(列表中的字符串c)-您从未将任何内容放入列表中
,那么您希望打印出什么ReadList
中的list
变量与CreateAccount