Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Visual C++ / С/C++

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 28.05.2009, 23:40   #1
Новичок
 
Пол:Мужской
Регистрация: 23.11.2007
Сообщений: 3
Репутация: 0
По умолчанию C# Коллекция структур

Собсно, понадобилось мне организовать коллекцию структур. Нашел готовый листинг реализации.
Код:
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));
	}
}
Получается довольно красиво и удобно. Имеем двумерный динамический массив, который легко прикручивается к DataGrid для вывода.
Но возникла проблема. Я никак не могу получить значение элемента структуры коллекции. По логике вещей, чтобы получить, к примеру, значение "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..
TS.ka вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


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


Старый 29.05.2009, 17:28   #2
zss
Постоялец
 
Пол:Мужской
Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
По умолчанию Re: C# Коллекция структур

Это сообщение связано с тем, что у вас существует элемент make и не существует Make.
То же самое и со строками
public string Make...
Не забывайте, что большие и малые буквы различаются.
__________________
Сергей Сергеевич
zss вне форума
 
Ответить с цитированием Вверх
Старый 29.05.2009, 19:17   #3
TS.ka
Новичок
 
Пол:Мужской
Регистрация: 23.11.2007
Сообщений: 3
Репутация: 0
По умолчанию Re: C# Коллекция структур

Цитата:
Сообщение от zss Посмотреть сообщение
Это сообщение связано с тем, что у вас существует элемент make и не существует Make.
То же самое и со строками
public string Make...
Не забывайте, что большие и малые буквы различаются.

Ну ровно так же пробовал и Make и make. Не обращается вообще никак =\
Да и Visual Studio в "al[1]." после точки предлагает написать разве что ToString() и прочие, никаких переменных не видит, значит таким образом точно достучаться нельзя. Тут в чем-то еще хитрость есть своя, я уверен
TS.ka вне форума
 
Ответить с цитированием Вверх
Старый 11.07.2009, 20:47   #4
JKR
Новичок
 
Пол:Мужской
Регистрация: 20.07.2006
Сообщений: 22
Репутация: 7
По умолчанию Re: C# Коллекция структур

Среда считает что al[1] - это объект типа object, т.к. ArrayList - коллекция object. Используйте вместо ArrayList класс List<guitar> (Это типизованная коллекция. можно пометить только объекты класса guitar). Или сделайте явное преобразование ((guitar)al[1]).Make = "Fender";
JKR вне форума
 
Ответить с цитированием Вверх
Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение:
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Коллекция Скриптов, 5-ть Bux'ов !, alex198555 Движки форумов и сайтов 5 17.09.2014 10:29
КЛУБ Любителей лифчиков mimi Молодежный портал 49 29.12.2013 23:50

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:07. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.04416 секунды с 13 запросами