PDA

View Full Version : [C#] Impossibile assegnare valore


HipT
18-01-2008, 14:55
Ciao a tutti.
Sto facendo un programma in C#.
Però mi sono fermato subito perchè mi da' un errore strano:confused: .


using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace compr_1
{
class Program
{
static void Main(string[] args)
{
int counter = 0;
string ing;
string s1;
int i=0;

System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt");
while ((ing = file.ReadLine()) != null)
{
for (int c1 = 0; c1 < ing.Length; c1++)
{
i=0;
s1[c1] = ing[c1];
if (ing[c1] == ' ')
{
}
}
Console.WriteLine(ing);
counter++;
}

file.Close();

// Suspend the screen.
Console.ReadLine();
}
}
}

Mi sono fermato prima di andare avanti perchè mi da' quest'errore:

Impossibile assegnare un valore alla proprietà o all'indicizzatore 'string.this[int]' perché è in sola lettura

Sinceramente un errore simile non mi è mai capitato...
Cosa potrebbe essere?
Grazie.

k0nt3
18-01-2008, 16:46
come recita msdn http://msdn2.microsoft.com/en-us/library/system.string.aspx
gli oggetti di tipo string sono immutabili, perciò sono in sola lettura. se vuoi avere un oggetto "mutabile" devi usare System.Text.StringBuilder

HipT
18-01-2008, 17:22
come recita msdn http://msdn2.microsoft.com/en-us/library/system.string.aspx
gli oggetti di tipo string sono immutabili, perciò sono in sola lettura. se vuoi avere un oggetto "mutabile" devi usare System.Text.StringBuilder

Ok,grazie.
Un'ultima cosa.
Non sapendo quante variabili string dovrà usare il programma (potrebbero essere da 0 a ...tante :sofico: ).
C'è un modo per creare delle variabili con nomi diverse ogni volta che serve?
es:
s(i);
dove i è un contatore che da' come nome "s+un numero" a ogni variabile in modo che non ci siano variabili con nomi uguali.
Grazie.
Ciao.

k0nt3
18-01-2008, 18:00
usa ArrayList, dovrebbe fare il caso tuo

HipT
18-01-2008, 19:18
usa ArrayList, dovrebbe fare il caso tuo

Ok,grazie.
Faccio così.:)

miniBill
18-01-2008, 20:37
usa una List<string> piuttosto che un ArrayList
sono simili, ma la List<string> non ha bisogno di cast per essere usata

HipT
18-01-2008, 22:26
usa una List<string> piuttosto che un ArrayList
sono simili, ma la List<string> non ha bisogno di cast per essere usata

Grazie ma ho iniziato con l'ArrayList e mi trovo molto bene.
Credo continuerò con lo stesso metodo.