Ошибка со списком <T>, говорит: «Использование универсального типа« System.Collections.Generic.List »требует аргументов 1 типа» - PullRequest
0 голосов
/ 30 апреля 2011

Работая над торговой частью, пахнет странно.Когда я иду, чтобы заполнить мой lixt, я получаю ошибку:

Использование универсального типа 'System.Collections.Generic.List' требует аргументов 1 типа

Я сделалэто на нескольких других классах, но ни один не дает эту ошибку.Вот класс, вызывающий ошибку:

StoreItem.cs

public class StoreItemViewModel
{
    public StoreItemViewModel()
    {
        this.StoreItems = GetStoreItemList(null);
    }

    private SelectList GetStoreItemList(string selectedValue)
    {
        List<StoreItems> list = new List<StoreItems>(); 
        IRepository<GodsCreationTaxidermy.Data.StoreItem> storeItems = ObjectFactory.GetInstance<IRepository<StoreItem>>();

        foreach (StoreItem item in storeItems.GetAll())
        {
            List.Add(new StoreItems <= error on this line
            {
                Key = item.Key,
                CategoryKey = item.CategoryKey,
                ItemName = item.ItemName,
                ItemDescription = item.ItemDescription,
                ItemPriced = item.ItemPrice,
                DatePosted = item.DatePosted,
            });
        }

        return new SelectList(list, "StoreItemID", "StoreItemName", selectedValue);
    }

    [UIHint("StoreItems")]
    public SelectList StoreItems { get; private set; }

    [Required(ErrorMessage = "Store Item is required")]
    public string StoreItem { get; set; }
}

Я могу показать другие классы, которые делают эту точную вещь (возможно, новый набор для глаз здесь) и вот один из них:

AnimalList.cs

public class AnimalsList
{
    public AnimalsList()
    {
        this.Animals = GetanimalList(null); 
    }

    private SelectList GetanimalList(string selectedValue)
    {

        List<Animal> list = new List<Animal>();
        IRepository<AnimalList> animals = ObjectFactory.GetInstance<IRepository<AnimalList>>();

        foreach (AnimalList animal in animals.GetAll())
        {
            list.Add(new Animal
            {
                AnimalId = animal.animal_id,
                AnimalName = animal.animal_name,
                IsBird = Convert.ToBoolean(animal.is_bird),
                MountType = animal.mount_type
            });
        }

        return new SelectList(list, "AnimalId", "AnimalName", selectedValue);
    }

    [UIHint("Animal")]
    public SelectList Animals { get; private set; }

    [Required(ErrorMessage = "Animal is required")]
    public string Animal { get; set; }
}

Может кто-нибудь сказать мне, что я здесь не так делаю.За последние несколько дней я видел много очень неясных ошибок (большинство из них я исправил), но я должен был обратиться за помощью к другим. Если вам нужно больше кода, просто дайте мне знать:)

Ответы [ 2 ]

2 голосов
/ 30 апреля 2011

Список написан заглавными буквами, поэтому вы ссылаетесь на Class вместо экземпляра "list".

Вам следует подумать об изменении имени переменной на что-то полезное, менее смутное или подверженное ошибкам, чтобы вы могли поймать ихбыстрее, или предотвратите их полностью.

0 голосов
/ 30 апреля 2011

В коде, который вы видите List.Add , это не сработает. Как только я сделал это строчными буквами, все хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...