[英]Removing items from collection class c#
我有藏書班。 我有一個要使用的刪除方法,該方法是在ive添加書籍之后。 這是我的書:
myList<Book> lst = new myList<Book>();
lst.addItem(new Book("Dumas", "Alexandre", "The Count Of Monte Cristo", 1844));
lst.addItem(new Book ("Clark", "Arthur C", "Rendezvous with Rama", 1972 ));
lst.addItem(new Book("Dumas", "Alexandre", "The Three Musketeers", 1844)); ;
lst.addItem((new Book ("Defoe", "Daniel", "Robinson Cruise", 1719)));
lst.addItem(new Book ("Clark", "Arthur C", "2001: A space Odyssey", 1968 ));
我的刪除方法如下所示:
public void removeItem(T item)
{
Array.Resize(ref items, items.Count() -2);
}
因此,例如,如果我想從列表中刪除第一本書,則嘗試這樣做:
lst.removeItem(0);
但是我收到一條錯誤消息,指出“方法'removeItem'的重載不接受0個參數”
我在做什么錯?
但是我收到一條錯誤消息,指出“方法'removeItem'的重載不接受0個參數”
我在做什么錯?
public void removeItem(T item) // <-- code within brackets is the "overload"
{
Array.Resize(ref items, items.Count() -2);
}
由於您為方法創建的構造函數僅接受一個參數,因此只能通過向其傳遞單個參數來利用該方法。
如果確實接受“ 0參數”,則將需要一個類似於以下內容的構造函數:
public void RemoveItem()
{
// your code here
}
但是,由於您至少需要將一個參數傳遞到您的方法中,所以這無法解決您的問題。
要收到錯誤“方法'removeItem'的重載不接受0個參數”,您將必須這樣調用removeItem
:
RemoveItem();
因此,我建議您按CTRL + F並搜索RemoveItem();
在項目中找到它的位置。
您使用的此方法采用類型為“ T”的一個參數removeItem(T item)
因此,您將收到一條錯誤消息(無法轉換為類型),因為您正在將一個整數0
傳遞給一個不接受Integer的方法,該方法接受您的“ T”類型。
正如許多人在評論中已經指出的那樣,您應該使用.NET提供的List類 。 當微軟已經創建並對其進行了微調時,沒有必要重新發明輪子。
另一個提示,盡管這不會影響您的代碼,但是命名方法的標准是Pascal Case。 因此,您應該將其稱為RemoveItem
而不是removeItem
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.