Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Динамические имена классов?
     
    
Добавлено: 23.11.07 23:22
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 zaitsman | Web-сайт: zaitsman.mine.nu | ICQ: 61452976 
      
       
  
Есть класс как список переменных.
 
    
Этот класс используется 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] внутри кода не сработало - это я пытался выделить где была ошибка