Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 3

Можно ли создавать коллекции объектов

03.10.2012, 05:01. Показов 1509. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Извиняюсь, если мой вопрос покажется глупым, но прочтенные книги пока не помогают.
Намекните, пожалуйста, кто-нибудь в каком направлении мыслить.
Подскажите, пожалуйста, как объявить что-то вроде массива, в котором вместо чисел (или строк) будут храниться (наверное) экземпляры класса.
Мне необходимо создать коллекцию объектов bbU[], но не так жестко, как в примере.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
BBandUpper bbUA = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value);
            BBandLower bbLA = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value);
            BBandUpper bbUB = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value + (_bbMin.Value + _bbIncrement.Value) * (_bbIncrementC.Value * 8));
            BBandLower bbLB = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value + (_bbMin.Value + _bbIncrement.Value) * (_bbIncrementC.Value * 8));
            BBandUpper bbUC = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 2 + ((_bbMin.Value + _bbIncrement.Value) * 2) * (_bbIncrementC.Value * 7));
            BBandLower bbLC = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 2 + ((_bbMin.Value + _bbIncrement.Value) * 2) * (_bbIncrementC.Value * 7));
            BBandUpper bbUD = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 3 + ((_bbMin.Value + _bbIncrement.Value) * 3) * (_bbIncrementC.Value * 6));
            BBandLower bbLD = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 3 + ((_bbMin.Value + _bbIncrement.Value) * 3) * (_bbIncrementC.Value * 6));
            BBandUpper bbUE = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 4 + ((_bbMin.Value + _bbIncrement.Value) * 4) * (_bbIncrementC.Value * 5));
            BBandLower bbLE = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 4 + ((_bbMin.Value + _bbIncrement.Value) * 4) * (_bbIncrementC.Value * 5));
            BBandUpper bbUF = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 5 + ((_bbMin.Value + _bbIncrement.Value) * 5) * (_bbIncrementC.Value * 4));
            BBandLower bbLF = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 5 + ((_bbMin.Value + _bbIncrement.Value) * 5) * (_bbIncrementC.Value * 4));
            BBandUpper bbUG = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 6 + ((_bbMin.Value + _bbIncrement.Value) * 6) * (_bbIncrementC.Value * 3));
            BBandLower bbLG = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 6 + ((_bbMin.Value + _bbIncrement.Value) * 6) * (_bbIncrementC.Value * 3));
            BBandUpper bbUH = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 7 + ((_bbMin.Value + _bbIncrement.Value) * 7) * (_bbIncrementC.Value * 2));
            BBandLower bbLH = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 7 + ((_bbMin.Value + _bbIncrement.Value) * 7) * (_bbIncrementC.Value * 2));
            BBandUpper bbUI = BBandUpper.Series(High, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 8 + ((_bbMin.Value + _bbIncrement.Value) * 8) * (_bbIncrementC.Value));
            BBandLower bbLI = BBandLower.Series(Low, _perBB.ValueInt, _bbMin.Value + _bbIncrement.Value * 8 + ((_bbMin.Value + _bbIncrement.Value) * 8) * (_bbIncrementC.Value));
C#.
Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2012, 05:01
Ответы с готовыми решениями:

Создание коллекции объектов
List<object> Argo = new List<object>(); Argo.Add(SendKeys.Send("{TAB}")); Ошибка 2 Аргумент "1": преобразование типа из...

IndexOf в коллекции объектов
Не могу понять почему IndexOf не видит объект в коллекции. Почему первая проверка не замечает повторяющихся объектов в списке, а вторая...

Быстрый перебор объектов в коллекции
Добрый вечер. Пишу онлайн-игрушку, и столкнулся с такой проблемой : передаю объекты класса от клиента к серверу, и наоборот. Во время...

4
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
03.10.2012, 05:05
Создаёте класс bbU с соответсвующими полями. Потом объявляете коллекцию типа List<bbu> lst=new List<bbu>();. Но инициализировать поля класса всё равно придётся)
1
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 3
03.10.2012, 06:51  [ТС]
Прошу прощения за назойливость, но, по-видимому, я совсем неалё.
Нельзя ли поподробнее насчет инициализации соответствующих полей класса? Что имеется ввиду? Параметры BBandLower.Series? Чесслово днем и ночью читаю книжку про Сишарп для чайников, но не могу создать эту коллекцию. М/б дело в том, что BBandLower и *Upper имеют специфический тип DataSeries?
0
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
03.10.2012, 07:40
Наверно как то так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication17
{
    enum MyEnum
    {
        Low,
        High
    }
 
    class BBandUpper
    {
        public static MyEnum enValue { get; private set; }
        public static int perBB { get; private set; }
        public static int bbMin { get; private set; }
 
        public static BBandUpper Series(MyEnum val, int per, int bb)
        {
            enValue = val;
            perBB = per;
            bbMin = bb;
            return new BBandUpper();
        }
    }
 
    class BBandLower
    {
        public static MyEnum enValue { get; private set; }
        public static int perBB { get; private set; }
        public static int bbMin { get; private set; }
 
        public static BBandLower Series(MyEnum val, int per, int bb)
        {
            enValue = val;
            perBB = per;
            bbMin = bb;
            return new BBandLower();
        }
 
    }
 
    class GenDelegateDemo
    {
        static void Main()
        {
            List<BBandUpper> bbUA = new List<BBandUpper>();
            List<BBandLower> bbLA = new List<BBandLower>();
 
            //не знаю что это,поэтому так обозначил
            int _bbMin = 1; 
            int _perBB = 10;
 
            for (int i = 0; i < 10; i++)  //сколько элементов добавляем в коллекции
            {
                bbUA.Add(BBandUpper.Series(MyEnum.High, _perBB + i, _bbMin + i));
                bbLA.Add(BBandLower.Series(MyEnum.Low, _perBB - i, _bbMin - i));
            }
        }
    }
}
1
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 3
03.10.2012, 16:19  [ТС]
Огромное человеческое Спасибо!

Добавлено через 6 часов 6 минут
Похоже этот компилятор не поддерживает современных директив. Пришлось преобразовать описание класса к следующему виду:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
 
namespace WealthLab.Strategies
{
    enum BBEnum {Low,  High}
    
    class BBandUpper
    {
        public static BBEnum enValue
        {
            get { return enValue; }
            private set { enValue = value; }
        }
        
        public static int perBB
        {
            get { return perBB; }
            private set { perBB = value ; }
        }
        public static double devBB
        {
            get { return devBB ; }
            private set { devBB = value ; }
        }
            
        public static BBandUpper Series(BBEnum val, int p, double m)
        {
            enValue = val;
            perBB = p;
            devBB = m;
            return new BBandUpper();            
        }
    }
    class BBandLower
    {
        public static BBEnum enValue
        {
            get { return enValue; }
            private set { enValue = value; }
        }
        
        public static int perBB
        {
            get { return perBB; }
            private set { perBB = value ; }
        }
        public static double devBB
        {
            get { return devBB ; }
            private set { devBB = value ; }
        }
            
        public static BBandLower Series(BBEnum val, int p, double m)
        {
            enValue = val;
            perBB = p;
            devBB = m;
            return new BBandLower();            
        }
    }
На этой стадии все нормально скомпилировалось, но возникла другая проблема:
Ранее (до какого-либо описания этого класса) строками типа:
C#
1
2
3
4
                       //пример сохранения индикатора в переменную
            BBandUpper bbU = BBandUpper.Series(High, 66, 2.4);
            //индикатор выводится на экран из переменной
            PlotSeries(PricePane, bbU, Color.Azure, LineStyle.Solid, 1);
индикатор сохранялся в переменную, а из переменной выводился на панель и (само-собой) использовался через обращение к переменной для различных условий.
После написания класса при аналогичных действиях я получаю следующие сообщения об ошибках:
The best overloaded method match for WL.Strategies.BBandUpper.Series(BBEnum, int, double) has some invalid arguments& Argument 1 cannot convert rom WL.DataSeries to WL.Strategies.BBEnum.
Дело в том, что процедурно я немного программирую, но с пониманием объектно-ориентированного программирования наблюдаются проблемы.
Спасибо.

Добавлено через 1 час 33 минуты
))) ура. я допетрил. спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2012, 16:19
Помогаю со студенческими работами здесь

Коллекции объектов и вложенные классы
Подскажите - как сделать коллекции? Ну или вложенные объекты. Например objetcs(1).mainobject.text.color Как это реализуется в ручную?...

Сортировка коллекции объектов обобщенного класса
Доброго времени суток) Столкнулся с такой проблемой: не получается отсортировать коллекцию. Необходимо, чтобы коллекция объектов...

Сортировка коллекции объектов обобщенного класса
Доброго времени суток) Столкнулся с такой проблемой: не получается отсортировать коллекцию. Необходимо, чтобы коллекция объектов...

Как создавать имена id объектов типа Класс?
Есть например класс: public class People { public string first_name, second_name, last_name; public...

Вывод полей объектов из коллекции List в DataGridView
Помогите разобраться. Данные для вывода dataGridView1.DataSource я беру из коллекции List&lt;Класс1&gt;. Все нормально выводится. Я создаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru