[英]Menu not showing list results
我有运行菜单的代码,但未显示列表信息。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Teste_Menu
{
class Program
{
static void Main(string[] args)
{
Menu();
List<Modelo> ListaModelo = new List<Modelo>();
ListaModelo.Add(new Modelo("Honda", "Civic", 180, 29000));
ListaModelo.Add(new Modelo("Honda", "Jazz", 100, 15000));
ListaModelo.Add(new Modelo("Honda", "HRV", 115, 22500));
}
static void Menu()
{
string escolha;
do
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.Magenta;
Console.WriteLine("\n");
Console.WriteLine(" ==================================================================================================== ");
Console.WriteLine(" =========================================== Carros ================================================= ");
Console.WriteLine(" ==================================================================================================== \n\n");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine(" * Consultar Lista de Carros -----------------------------------------------> (1)\n ");
escolha = Console.ReadLine();
switch (escolha)
{
case "1": ListaModelo();
break;
}
Console.ReadLine();
}
while (escolha != "2");
}
static void ListaModelo()
{
{
var ListaModelo = new List<int>(Enumerable.Range(0, 3));
ListaModelo.ForEach(Console.WriteLine);
}
}
}
}
我的问题是,当我按数字1时,菜单没有显示汽车列表。 它只是打印:
1
2
3
4
而且没有名字。 我在这里做错了什么?
您在方法ListaModelo
创建一个名为ListaModelo
全新列表,该列表仅填充数字。 尽管它具有相同的名称,但它与您在此行的Main
方法中实例化的列表不同,它是相同的:
List<Modelo> ListaModelo = new List<Modelo>();
解决问题的方法之一是将List的声明放在Main
方法之外,并将其设置为static
:
class Program
{
public static List<Modelo> ListaModelo = new List<Modelo>();
static void Main(string[] args)
{
并删除ListaModelo()
方法中的行:
var ListaModelo = new List<int>(Enumerable.Range(0, 3));
为了获得有意义的输出,您需要重写Modelo
类中的ToString
方法。 因此,它将显示您希望看到的所有属性。 将此方法插入您的Modelo
类:
public override string ToString()
{
return String.Format("{0} {1} {2} {3}", yourProperty1, yourProperty2, yourProperty3, yourProperty4);
}
另外,请确保要打印的方法的名称与List ListaModelo
的名称不同。
最后一点! 在显示“ Menu
之前,您需要在汽车上填写清单,否则该Menu
将为空! 只需将订单切换为:
List<Modelo> ListaModelo = new List<Modelo>();
ListaModelo.Add(new Modelo("Honda", "Civic", 180, 29000));
ListaModelo.Add(new Modelo("Honda", "Jazz", 100, 15000));
ListaModelo.Add(new Modelo("Honda", "HRV", 115, 22500));
Menu();
如果要编写汽车清单,则在Menu函数中应该有一个参数:
静态void菜单(列表参数)
在ListaModelo同样的问题中,您应该将List作为参数:
然后,您可以具有这样的ListaModelo函数:
静态void ListaModelo(List param){
param.ForEach(x=> Console.WriteLine(x.Name)); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.