[英]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.