好吧,我已經制作了一個顯示方法,它是一個串列,所以我試圖做的沒有成功的事情就是讓它顯示它,但我無法做到,因為它遇到了我無法想象的 CS1503 錯誤出去,我只是在對此事/解決方案進行一些指導之后。
我最終在 foreach 回圈中的 B 類中發生錯誤manageAccounts.DispalyBasicInfo(item);
我只是還在學習 C#。
A類:
public void DisplayBasicInfo(List<Account> lstAcc)
{
foreach (var item in lstAcc)
{
Account objAccTemp = item;
lblCustomerName.Text = objAccTemp.CustomerName;
lblCustomerNo.Text = objAccTemp.AccountID.ToString();
if (objAccTemp.AccountType != null)
{
lstAccounts.Items.Add(objAccTemp.AccountID " " objAccTemp.AccountType " $" objAccTemp.BankBalance);
}
}
}
B類:
private void btnManageAccount_Click(object sender, EventArgs e)
{
try
{
ManageAccounts manageAccounts = new ManageAccounts();
string strTemp = lstCustomers.SelectedItem.ToString();
foreach (var item in Controller.lstAccounts)
{
if (item.CustomerName == strTemp)
{
manageAccounts.DisplayBasicInfo(item);
}
}
manageAccounts.Show();
Close();
}
catch (Exception)
{
MessageBox.Show("Please select a customer or create one", "No Selection");
}
}
uj5u.com熱心網友回復:
該DisplayBasicInfo()
方法需要一個完整的串列:
public void DisplayBasicInfo(List<Account> lstAcc)
但是當你呼叫它時,你沒有一個串列。您只有一個帳戶:
manageAccounts.DisplayBasicInfo(item);
此外,如果您確實將整個串列傳遞給方法,則只有最后一個專案會顯示在螢屏上,因為回圈會在每次迭代時覆寫相同的專案。
因此你可能想要這個:
public void DisplayBasicInfo(Account account)
{
lblCustomerName.Text = account.CustomerName;
lblCustomerNo.Text = account.AccountID.ToString();
if (account.AccountType != null)
{
lstAccounts.Items.Add($"{account.AccountID} {account.AccountType} {account.BankBalance:C2}";
}
}
最后,我不知道誰教你使用lst
or之類obj
的前綴,但不再推薦。這在過去是有道理的,但現在工具已經改進了。即使是創建這種做法的微軟,現在也專門發布了風格指南,要求人們不要使用這種表示法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/468319.html