![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Новичок
Пол:
Регистрация: 23.11.2007
Сообщений: 3
Репутация: 0
|
Собсно, понадобилось мне организовать коллекцию структур. Нашел готовый листинг реализации.
Код:
public struct guitar
{
private string make;
private string model;
private short year;
public guitar(string Make, string Model, short Year)
{
make=Make;
model=Model;
year=Year;
}
public string Make
{
get
{
return make;
}
set
{
make = value;
}
}
public string Model
{
get
{
return model;
}
set
{
model = value;
}
}
public short Year
{
get
{
return year;
}
set
{
year = value;
}
}
}
public partial class Form1 : Form
{
private ArrayList al = new ArrayList();
private void AddButton_Click(object sender, EventArgs e)
{
al.Add (new guitar("Gibson", "Les Paul", 1958));
al.Add (new guitar("Fender", "Jazz Bass", 1964));
al.Add (new guitar("Guild", "Bluesbird", 1971));
}
}
Но возникла проблема. Я никак не могу получить значение элемента структуры коллекции. По логике вещей, чтобы получить, к примеру, значение "Fender" я должен обратиться к al[1].Make. Но в ответ получаю "The name "Make" does not exist in the current context". Если просто создать, например, массив структур, то обратиться можно к любому элементу без проблем Код:
guitar[] al; al = new guitar(3); al[1].Make = "Fender"; Последний раз редактировалось TS.ka; 28.05.2009 в 23:49.. |
|
|
|
| Реклама: | pa5000x | как почте россии привязать авито | Лучшие замороженные пюре: пюре из мандаринов - заказывай на сайта АГРОБАР! | интеграция доставки яндекс | aerostar взрывозащищенный вентилятор |
|
|
#2
|
|
Постоялец
![]() ![]() ![]() ![]() ![]() Пол:
Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Это сообщение связано с тем, что у вас существует элемент make и не существует Make.
То же самое и со строками public string Make... Не забывайте, что большие и малые буквы различаются.
__________________
Сергей Сергеевич |
|
|
|
|
|
#3
|
|
Новичок
Пол:
Регистрация: 23.11.2007
Сообщений: 3
Репутация: 0
|
Ну ровно так же пробовал и Make и make. Не обращается вообще никак =\ Да и Visual Studio в "al[1]." после точки предлагает написать разве что ToString() и прочие, никаких переменных не видит, значит таким образом точно достучаться нельзя. Тут в чем-то еще хитрость есть своя, я уверен ![]() |
|
|
|
|
|
#4
|
|
Новичок
![]() ![]() Пол:
Регистрация: 20.07.2006
Сообщений: 22
Репутация: 7
|
Среда считает что al[1] - это объект типа object, т.к. ArrayList - коллекция object. Используйте вместо ArrayList класс List<guitar> (Это типизованная коллекция. можно пометить только объекты класса guitar). Или сделайте явное преобразование ((guitar)al[1]).Make = "Fender";
|
|
|
|
| Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
![]() |
| Опции темы | |
| Опции просмотра | |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Коллекция Скриптов, 5-ть Bux'ов !, | alex198555 | Движки форумов и сайтов | 5 | 17.09.2014 10:29 |
| КЛУБ Любителей лифчиков | mimi | Молодежный портал | 49 | 29.12.2013 23:50 |
|
|