|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
[c#] problema length
Questo codice funziona e nell'output mi scrive la lunghezza del numero
Codice:
int numfiles = 1 + (System.IO.Directory.GetFiles(percorsoDef)).Length; string snumfiles = numfiles.ToString(); Console.WriteLine(snumfiles.Length); Codice:
int numfiles = 1 + (System.IO.Directory.GetFiles(percorsoDef)).Length;
string snumfiles = numfiles.ToString();
//Console.WriteLine(snumfiles.Length);
string zeri;
if (snumfiles.Length = "1")
{
zeri = "000";
}
su snumfiles.Length Errore 3 Impossibile assegnare un valore alla proprietà o all'indicizzatore 'string.Length' perché è in sola lettura e su "1" Errore 4 Impossibile convertire implicitamente il tipo 'string' in 'int' Mi |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Dec 2005
Città: Provincia di Vicenza
Messaggi: 174
|
Ciao,
l'operatore di uguaglianza è "==", mentre l'operatore di assegnazione è "=". Codice:
if (snumfiles.Length = "1") - assegnazione del campo Length, che è in sola lettura, a "1"; - i doppi apici identificano una stringa, mentre il campo Length è un intero; il codice dovrebbe essere: Codice:
if (snumfiles.Length == 1) |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
Grazie,ho provato a modificare come hai detto tu ed ora è così
Codice:
int numfiles = 1 + (System.IO.Directory.GetFiles(percorsoDef)).Length;
string snumfiles = numfiles.ToString();
//Console.WriteLine(snumfiles.Length);
string zeri;
if (snumfiles.Length == 1)
{
zeri = "000";
}
console.writeline(zeri);
utilizzo della variabile locale 'zeri' non assegnata... |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Tradate
Messaggi: 396
|
string zeri="";
Devi assegnarla, altrimenti se non entra nell'if cosa stampa poi? |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Apr 2011
Messaggi: 25
|
non capisco perchè utilizzi le stringhe...
la funzione Console.WriteLine() riceve tranquillamente come argomento un intero. Il codice potresti farlo semplicemente così Codice:
int numfiles = 1 + (System.IO.Directory.GetFiles(percorsoDef)).Length;
//Console.WriteLine(numfiles);
if (numfiles == 1)
{
console.writeline("000"); //oppure Console.WriteLine(0);
}
Più variabili metti più memoria occupi è sempre meglio essere concisi e usare solo cose necessarie. Volendo potresti anche fare così: int numfiles = (System.IO.Directory.GetFiles(percorsoDef)).Lengt++; ma questa è solo una "raffinatezza" |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Feb 2009
Messaggi: 18
|
grazie Darecon risolto con string zeri="";
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:35.



















