string na const string

Odpowiedz Nowy wątek
2011-07-19 08:01
0

Witam.
Mam taki głupi problem. Zmienna lista jest pobierana z innej formatki i nie może być stała, a muszę ją zmienić na stałą w tej nowej formatce.

const string list = Form1.lista[0];

wywala taki błąd: Wyrażenie przypisywane do elementu „App.Form3.list” musi być wyrażeniem stałym.


<span style="color: red">pomyśl o wczoraj, dziś, jutra może nie być nic . . .</span>
edytowany 2x, ostatnio: KrzyH, 2011-07-19 08:04

Pozostało 580 znaków

2011-07-19 08:08
pan kuba
1

Spróbuj ze słówkiem kluczowym readonly, zamiast const.

Pozostało 580 znaków

2011-07-19 08:32
0

dalej to samo ale dzięki za chęci


<span style="color: red">pomyśl o wczoraj, dziś, jutra może nie być nic . . .</span>

Pozostało 580 znaków

2011-07-19 09:37
1

@KrzyH skopiuj zawartość? Bo zauważ że to co chcesz zrobić nie ma sensu. Zrobisz to przypisanie (które jest przypisaniem referencyjnym) ale nadal możesz ten obiekt zmieniać odwołując się do Form1.lista[0]; i twoje list się zmieni mimo ze napisałeś ze jest const.

Pozostało 580 znaków

2011-07-19 09:57
0

w Form1 mam zadeklarowane:

public static List<string> lista = new List<string>(); 

która przechowuje zaznaczone pozycje z listboxa (jakiś tam string). Pobieram jakąś pozycje z listy do Form3 i sprawdzam czy znajdują się tam jakieś cyfry, które zapisują mi się w tablicy:

string[] numbers = Regex.Split(zmienna, @"\D+");

Regex.Split działa mi tylko jak zmienna jest zadeklarowana jako stała.


<span style="color: red">pomyśl o wczoraj, dziś, jutra może nie być nic . . .</span>
edytowany 1x, ostatnio: KrzyH, 2011-07-19 09:57

Pozostało 580 znaków

2011-07-19 10:07
1

pics or it didn't happen, bo dokumentacja twierdzi że argumentem moze być najzwyklejszy string.

Pozostało 580 znaków

2011-07-19 11:35
1

Regex.Split działa mi tylko jak zmienna jest zadeklarowana jako stała.
.Net niespecjalnie przejmuje się "const correctness", więc to nie powinno stanowić problemu.

Pozostało 580 znaków

2011-07-19 11:40
1

Wartość stałych musi być ustalona już przy kompilowaniu.
Takie coś przejdzie:

        const string stala = "aaa" + "bb";

Ale coś takiego już nie:

        const string stala = "aaa" + zmienna;
        static string zmienna = "bb";

Pozostało 580 znaków

2011-07-19 13:01
0

Najwidoczniej coś źle zrobiłem, bo się kompiluje normalnie. Od nowa napisze cały kawałek kodu i zobaczę może zadziała to co chce. Dzięki za pomoc


<span style="color: red">pomyśl o wczoraj, dziś, jutra może nie być nic . . .</span>

Pozostało 580 znaków

2011-07-20 02:47
0

A może masz po prostu włączone uruchamianie poprzedniej działającej wersji w przypadku błędów kompilacji? :)


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
ta funkcja jest zua. po co w ogóle takie coś wprowadzili? - Azarien 2011-07-20 09:19

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0