Jump to content


Photo

Redeclarar Arrays Quando São Atributos Públicos


  • Faça o login para participar
2 replies to this topic

#1 Aimberê Rocha Mendonça

Aimberê Rocha Mendonça

    Turista

  • Usuários
  • 45 posts
  • Sexo:Masculino
  • Localidade:brasília

Posted 07/04/2009, 11:13

Bom dia galera,

To numa amuação mor hj, pq preciso fazer a redeclaração de um atributo público de uma classe.
Vamos supor que tenhamos a seguinte classe.

[codebox]Class example
public arr()
end class[/codebox]

eu gostaria que esse array fosse dinamico, porém não consigo redeclará-lo.
Observem:
[codebox]dim ex: set ex = new example

redim preserve ex.arr(x)[/codebox]


o código dá o seguinte erro.

Expected '('

bem na parte em que está o ponto da expressão "ex.array"

alguém me salva?

obrigado.
Aimberê Rocha Mendonça
IT Analyst and Developer

#2 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 13/04/2009, 13:38

Desculpa, mas isso é ASP? Me parece mais ASP.net ...

/*DarkSign*/
Não sabe por onde começar? Que tal pelas Regras ?

#3 Aimberê Rocha Mendonça

Aimberê Rocha Mendonça

    Turista

  • Usuários
  • 45 posts
  • Sexo:Masculino
  • Localidade:brasília

Posted 14/04/2009, 08:50

Sim, isso é ASP, e inclusive, conseguir arrumar o erro.
Quando precisei fazer essa declaração achei estranho o fato de eu querer redeclarar um atributo definido dentro da classe, mesmo ele sendo público. Estava ferindo as propriedades de OOP. E é muito estranho eu querer fazer o
Redim Preserve Classe.array(x)

de fato aqui, estávamos tratando o array (nesse caso), como algo externo a classe, e não como uma interface entre o objeto e o ator, que é a função dos atributos públicos, ser uma interface. Mas ainda assim eu precisava dessa porcaria, gostaria que meu array fosse dinâmico, e foi quando eu tive a idéia de passar um array inteiro por referência, ou seja em um dos meus métodos, criava outro array e setava seu endereço de memória para array, fazendo com que o array, se tornasse uma referencia do outro, como um ponteiro, na linguagem C. Observem:
Public Function Method()

	dim arr = Array(1,2,3,4,5,6)
	Classe.array = arr

end Function


No meu código, não era bem assim, pois estava trabalhando em camadas, portanto imaginemos que arr é o retorno de uma função.


Abrass.
Aimberê Rocha Mendonça
IT Analyst and Developer




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq