# Objektnamen aus Strings zusammensetzen



## Calisto (3. März 2002)

Hallo zusammen, 

hier ein echtes Anfänger-Problem:
Ich möchte das Visible-Attribute mehrerer Webcontrols verändern (Textbox1, Textbox2 usw.). Dazu möchte ich eine For-Schleife verwenden, in der das jeweilige Objekt angesprochen und das Attribut gesetzt wird. Dazu hatte ich folgende Idee: zusammensetzen des Objektnamens aus einem String "Textbox" und der entsprechenden Laufvariable aus der For-Schleife. Mein Versuch sah folgendermassen aus: 

for(int j=1; j<6; j++){ 
String AktuelleTextbox = "Textbox" + j.ToString(); 
AktuelleTextbox.Visible = true; 
} 

Das Problem ist, man kann auf einen String nicht das Visible-Attribut anwenden, wie kann ich den String jetzt als Objekt benutzen???? 
Im Voraus vielen Dank für eure Mühe, 
Calisto


----------



## Matthias Reitinger (3. März 2002)

Ähm... in welcher Programmiersprache soll das sein?


----------



## Christian Fein (4. März 2002)

Das ist C# erkenn ich am  .ToString()


----------



## Christian Fein (4. März 2002)

Oiiii
ganz falsch.

Les dich bitte nochmals in OOP ein insbesondere Polymorphie.

Du hast doch automatisch eine Kollektion deiner  WebForms zusammen in der Page Klasse.
Die du aufgrund der Polymorphie alle ansprechen kannst.

Schau dir mal in der Page Klasse:

*public virtual ControlCollection Controls {get;}*

an.
Dann bekommst du eine ControlCollection zurueck diese kannst du dann, da sie das Interface IEnumerable enthaelt, mit foreach durchlaufen.


```
foreach(Control temp in this.Controls)
{
   temp.Visible = true;
}
```

Insgesammt laeuft alles ueber polymorphie. Drum les dich da bitte nochmals genau rein das ist mit das wichtigste bei C# und ASP.net und mit einer der staerksten eigenschaften


----------



## Matthias Reitinger (4. März 2002)

Das ist C#? Ein int ist da eine Klasse? Bäh. Da bleib ich doch bei C++ 
Na ja, aber am besten verkriech ich mich wieder in's PHP-Forum, bevor ich den Zorn einiger C#-Anhänger hier auf mich ziehe


----------



## Xeragon (4. März 2002)

Nebenbei bemerkt könntest du die Textboxen auch als Array definieren, dann sparst du dir den Umweg.


----------



## Christian Fein (5. März 2002)

> _Original geschrieben von reima _
> *Das ist C#? Ein int ist da eine Klasse? Bäh. Da bleib ich doch bei C++
> *



Ja und nein 
Ein int wird als nativ Wertetyp behandelt sobald mann aber Methoden des int wie z.b. myInt.ToString() aufruft wird der int automatisch in einer "Box" verpack (wie in Java die Wrapper Klasse) die Methode ausgefuehrt und dann wieder ausgepackt.

Ist eine nicht schlechte Sache


----------



## Xeragon (5. März 2002)

Kurz und bündig: Es ist auch nicht pur OO.


----------



## Christian Fein (6. März 2002)

ja ja ok ok


----------

