Ahoj, mám dotaz, jak definovat proměnnou a dát jí název, který mám dříve uložený v jiné proměnné typu string?
Např. chci, aby v proměnné cislo byla hodnota 35:
string nazev = "cislo";
int ???nazev = 35;
jak to udělat?
Ahoj, mám dotaz, jak definovat proměnnou a dát jí název, který mám dříve uložený v jiné proměnné typu string?
Např. chci, aby v proměnné cislo byla hodnota 35:
string nazev = "cislo";
int ???nazev = 35;
Nevím jak v ostatních jazycích, ale v C# to není možné. Vytvářet proměnné takhle dynamicky je špatný nápad a ani za boha mě nenapadá možnost využití. Vždyť bys tu proměnnou ani nemohl ve zbytku aplikace používat, protože při kompilaci by se zjistilo, že ta proměnná neexistuje.
100% je chyba v promyšlení návrhu aplikace, zkus se nad tím zamyslet jinak a určitě to půjde vyřešit. Nebo nám řekni, co chceš udělat a zkusíme to společně.
Tak to je asi lepsi pouzit Dictionary<T, U>, nebo Hashtable, pripadne System.Collections.Specialized.NameValueCollection.samae1 napsal:
nelze, zkusil bych použít Arraylist a seznam, v seznamu budu mít jméno proměnné a číslo na jaké pozici se vyskytuje v Arraylistu, Arraylist pak obsahuje samotný obsah proměnné
Nelze? Jsi si jistý? Nešlo by to třeba nějak udělat pomocí reflexe?
Zkus popsat na co to potřebuješ, určitě se najde lepší řešení. Např. v php toto jde a už jsem to viděl použité na takových prasárnách, že buďme rádi, že to v C# nejde :-)
To Kolemjdoucí : Určitě by se něco podobného dalo vytvořit (dynamická kompilace, reflexe, apod), ale je to pomalé a věřím, že i zbytečné.
To Andy : ak chces vytvarat veci typu
(nazov)+name = "";
(nazov)+description="";
struct A
{
public string Name, Description;
}
//a
... System.Collections.Generic.Dictionary< string, A/* A je ta struktura :D */ >;
To Andy : a este jedna vec, zjednodusene: nazov premennej je len pre teba a pre kompilator aby vedel ktoru premennu pri kompilacii myslis, kludne mozes pouzit aj iny nazov a sa tym nic nezmeni
To djanosik : Naprosto souhlasím, že by to bylo pomalé a s vysokou pravděpodobností i naprosto zbytečné, můj příspěvek byl spíše odpovědí Chrastymu, který tvrdil, že to v C# není vůbec možné.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku