string na const string

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.

1

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

0

dalej to samo ale dzięki za chęci

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.

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.

1

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

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.

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";
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

0

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

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