2014-04-03 3 views
-1

Im пытается сделать LinkedList внутри словаря, но Im получают следующие две ошибок:LinkedList не работает, получая ошибку

Error1: Лучший перегруженный метод подходит для «System.Collections.Generic.LinkedList. AddFirst (System.Co llections.Generic.LinkedListNode)»имеет некоторые недопустимый аргумент

Error2: аргумент 1: не удается преобразовать из 'строка' в 'System.Collections.Generic.LinkedListNode',

Код wher е ошибка показывает это [ОБНОВЛЕНО]:

this.albumslist.AddFirst(album); 

Соответствующая часть класса художника [ОБНОВЛЕНО]:

class Artist 
{ 
    private string artistname; 
    private string members; 
    private string albums; 
    private LinkedList<Albums> albumslist; 

    public Artist(string artistname, string members, string album) 
    { 
     this.artistname = artistname; 
     this.members = members; 
     this.albumslist = new LinkedList<Albums>(); 
     this.albumslist.AddFirst(album); 
    } 
} 

ответ

1

Ошибка говорит все. Класс Artist имеет только один конструктор с параметрами

string, string, LinkedList<Albums> 

И вы пытаетесь вызвать этот конструктор с параметрами:

txtArtistName.Text, txtMembers.Text,txtAlbum.Text 

т.е.

string, string, string 

EDIT

Error1:

The best overloaded method match for 'System.Collections.Generic.LinkedList<ArtistsLibrary.Albums>.AddFirst(System.Co‌​llections.Generic.LinkedListNode<ArtistsLibrary.Albums>)' has some invalid argument-- 

Причина: Вы передаете значение строки AddFirst, поскольку он получает LinkedListNode<ArtistsLibrary.Albums в качестве аргумента.

Error2:

Argument 1: cannot convert from 'string' to 'System.Collections.Generic.LinkedListNode<ArtistsLibrary.Albums>' 

Причина: Он говорит, не удалось преобразовать строку типа LinkedListNode<ArtistsLibrary.Albums>, так как он ожидает, что тип (как уже упоминалось в первой причине).

+0

спасибо, я понял, что сейчас, но, к сожалению, все еще возникают ошибки. см. мой комментарий к ответу ниже. – user3494713

+0

@ user3494713: Можете ли вы отредактировать вопрос и показать код, как вы сделали вначале? Потому что Крейг В. отредактировал вопрос и удалил эти части, без обид Крейга. :-) –

+0

Я обновил главный пост. – user3494713

1

Я не уверен, я понимаю, почему ты запутался. Конструктор для Artist принимает LinkedList в качестве третьего аргумента.

public Artist(string artistname, string members, LinkedList<Albums> albumslist) 

В вашем коде вы передаете ему строку в качестве третьего аргумента.

new Artist(txtArtistName.Text, txtMembers.Text,txtAlbum.Text) 

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

public Artist(string artistName, string members, string album) 
{ 
    this.artistname = artistname; 
    this.members = members; 
    this.albumslist = new LinkedList<Albums>(); 
    this.albumslist.AddFirst(new Album() { Name = album }); 
} 

Я немного сбит с толку относительно того, почему LinkedList необходимо, а не просто список, но я предполагаю, что у вас есть веские основания для этого.

+0

Спасибо за быстрый ответ @Craig W. Теперь я получаю еще две ошибки для: this.albumslist.AddFirst (альбом); - error1: лучшее перегруженное соответствие метода для 'System.Collections.Generic.LinkedList .AddFirst (System.Collections.Generic.LinkedListNode ) 'имеет некоторый недопустимый аргумент-- error2: Аргумент 1: невозможно преобразовать из' string 'в' System.Collections.Generic.LinkedListNode ', любой решение для них? – user3494713

+0

Я обновил ответ. AddFirst нуждается в экземпляре типа (альбом в этом случае). Я не знаю, как выглядит этот класс, поэтому я догадался, что имя свойства. Честно говоря, было бы неплохо видеть, что вы приложили немного усилий, а не просто: «К сожалению, у меня есть ошибка, я думаю, я просто отправлю сообщение в Stackoverflow и позволю кому-то еще выполнить мою работу за меня». Я всегда готов помочь кому-то, когда они проявят инициативу. –

Смежные вопросы