Страница: 1 |
Страница: 1 |
Вопрос: Динамические имена классов?
Добавлено: 23.11.07 23:22
Автор вопроса:
zaitsman | Web-сайт:
Есть класс как список переменных.
Этот класс используется 17 раз в программе - создается 17 классов по шаблону - Класс1,класс2...класс17.
В программе в зависимости от выбора пользователя нужно использовать данные одного из 17 классов. Можно ли сделать так, чтобы было чтото аля
if (выбор_пользователя=X) then
a=классX.переменная*2
Если да, то как?
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа: zaitsman
ICQ: 61452976
Вопросов: 2
Ответов: 12
Web-сайт:
Профиль | | #1
Добавлено: 23.11.07 23:23
в vb.net 2005
Номер ответа: 2
Автор ответа: HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 24.11.07 01:25
Dim myclass() as new coolClass
a=myclass(x).переменная * 2
Номер ответа: 3
Автор ответа: zaitsman
ICQ: 61452976
Вопросов: 2
Ответов: 12
Web-сайт:
Профиль | | #3
Добавлено: 24.11.07 10:12
Error:Arrays cannot be declared with 'New'.
Номер ответа: 4
Автор ответа: Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #4
Добавлено: 24.11.07 10:25
--
Кодообменник Kbyte.Ru - давай меняться!
http://kbyte.ru/code
Номер ответа: 5
Автор ответа: zaitsman
ICQ: 61452976
Вопросов: 2
Ответов: 12
Web-сайт:
Профиль | | #5
Добавлено: 24.11.07 10:34
A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
A first chance exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
На такой код:
Public poplist As New List(Of wtid)
Private Sub Form1_Load
Dim a As Integer
Dim b As Integer
poplist(1).lluc = 2.345 '<-ОШИБКА в этом месте. lluc описано в классе как decimal
poplist(13).lluc = 5.432
a = 1
b = 13
MsgBox(poplist.lluc)
MsgBox(poplist(b).lluc)
И еще вопрос - можно ли создать массивы, индексом которых будет переменная(в идеале) или хотя бы слово, а не просто цифра.
Номер ответа: 6
Автор ответа: Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #6
Добавлено: 24.11.07 10:47
Это ты мне такой код дал? А зачем он мне
)
Можно:
Dim p As New wtid()
p.lluc = 2.345
poplist.Add("Слово", p)
'...
'...
'...
MsgBox(poplist("Слово".lluc)
--
Форум Kbyte.Ru - давай общаться!
http://kbyte.ru/forum
Номер ответа: 7
Автор ответа: zaitsman
ICQ: 61452976
Вопросов: 2
Ответов: 12
Web-сайт:
Профиль | | #7
Добавлено: 24.11.07 10:50
Код я написал потому, что не понял, че делать после
Из приведенного листинга я тоже, впрочем ничего не понял. Массивы это было отдельно, а классы отдельно.
мнеб 17 классов типа класс(1) или класс1 чтобы вместо цифры переменную подставить. Как это организовать?
Номер ответа: 8
Автор ответа: Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #8
Добавлено: 24.11.07 11:26
Все же элементарно http://kbyte.ru/code/Show.aspx?id=86, грубо говоря List(Of ) - это и есть массив, и используй его также, как ты бы использовал массивы. А Dictionary(Of String, wtid) - это, грубо говоря, ассоциативный массив (http://ru.wikipedia.org/wiki/%D0%90%D1%81%D1%81%D0%BE%D1%86%D0%B8%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2). Создавай хоть 100 классов
Добавляй их в коллекцию методом Add(). См. ссылку которую я дал, там все написано.
Номер ответа: 9
Автор ответа: zaitsman
ICQ: 61452976
Вопросов: 2
Ответов: 12
Web-сайт:
Профиль | | #9
Добавлено: 24.11.07 11:27
По ссылкам пройду, с твоим листингом выше разобрался вроде
Номер ответа: 10
Автор ответа: zaitsman
ICQ: 61452976
Вопросов: 2
Ответов: 12
Web-сайт:
Профиль | | #10
Добавлено: 24.11.07 14:37
Вот еще вопросик - есть 5 текстовых полей (textbox1...textbox5)
Как бы сделать чтото вроде
public winlist as list(of integer, winclass)
....
private sub button_click
for counter=1 to 5
winlist(counter).value=textbox(counter)
counter=counter+1
next
?? то есть динамически менять имя контрола?
Номер ответа: 11
Автор ответа: Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #11
Добавлено: 24.11.07 14:45
Непонятно где и что ты собрался там менять
Если хочешь найти контрол textBox1, textBox2 ... textBoxN, то
используй FindControl("ИмяКонтрола":
If Me.FindControl("textBox" & i.ToString) IsNot Nothing Then
MsgBox("Ну все, ппц пришел, сушите хабы.."
Next i
Номер ответа: 12
Автор ответа: zaitsman
ICQ: 61452976
Вопросов: 2
Ответов: 12
Web-сайт:
Профиль | | #12
Добавлено: 24.11.07 14:46
ошибку в коде допустил, вот верный ниже, мне нужно чтобы перебором 5 значений пяти классов получали значения пяти текстбоксов
public winlist as list(of integer, winclass)
....
private sub button_click
for counter=1 to 5
winlist(counter).value=textbox(counter).[b]text[/b]
counter=counter+1
next
Номер ответа: 13
Автор ответа: zaitsman
ICQ: 61452976
Вопросов: 2
Ответов: 12
Web-сайт:
Профиль | | #13
Добавлено: 24.11.07 14:47
хм, {b] внутри кода не сработало - это я пытался выделить где была ошибка