Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
La prima tappa italiana della Road to CES porta a Milano i vertici della Consumer Technology Association, con una nuova griglia di lettura dei trend tecnologici e una posizione netta su dazi e regolamentazione dell'IA
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-11-2008, 16:01   #1
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
[C#]Errore di assegnazione della variabile

Ciao!!!
Eccomi ritornato!
Non capisco perchè ho quest'errore direi abbastanza basilare...
ho creato 2 varibili di tipo string chiamate operazione e newoperazione.
Guardate questa pezzo di una funzione alla quale la varibile operazione è stata passata...
Codice:
//questo pezzo di codice dovrebbe copiare la variabile operazione in new operazione
           a=0;
            string newoperazione;

            while (true)
            {
                if (operazione[a] != '(' |
                    operazione[a] != ')' |
                    operazione[a] != '[' |
                    operazione[a] != ']' |
                    operazione[a] != '{' |
                    operazione[a] != '}' |
                    operazione[a] != '=')
                { break; }

                newoperazione[a] = operazione[a];

                a++;
            }
ho il seguente errore:
Errore 1 Impossibile assegnare un valore alla proprietà o all'indicizzatore 'string.this[int]' perché è in sola lettura C:\Users\Matteo\C#\Calculator 4\Calculator 4\Form1.cs 107 17 Calculator 4
Perchè?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 18:10   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
non puoi modificare la stringa.
Per fare quello che vuoi dovresti usare la classe StingBuilder.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 20:32   #3
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
che è sta classe? Comunque che non potessi modificare la stringa l'avevo capito solo mi chiedevo perchè e se quindi ci fosse un modo per poterla modificare senza ricorrere ad altre classi... Perchè comunque per le altre stringhe e variabili in generale tutto funzionava tranquillamente....
Quindi: perchè?

Grazie dell'aiuto
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 20:40   #4
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4908
Perché usi il bitwise OR?
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 20:50   #5
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
che è sta classe? Comunque che non potessi modificare la stringa l'avevo capito solo mi chiedevo perchè e se quindi ci fosse un modo per poterla modificare senza ricorrere ad altre classi... Perchè comunque per le altre stringhe e variabili in generale tutto funzionava tranquillamente....
Quindi: perchè?

Grazie dell'aiuto

ma scusa hai mai programmato in C#?
Quote:
Originariamente inviato da MSDN
A string is a sequential collection of Unicode characters that is used to represent text. A String object is a sequential collection of System.Char objects that represent a string. The value of the String object is the content of the sequential collection, and that value is immutable.

A String object is called immutable (read-only) because its value cannot be modified once it has been created. Methods that appear to modify a String object actually return a new String object that contains the modification. If it is necessary to modify the actual contents of a string-like object, use the System.Text.StringBuilder class.
Quello che vuoi fare tu, ovvero "newoperazione[a] = operazione[a]" non è possibile.
Inoltre Elche ha giustamente notato che stai utilizzando il bitwise OR nelle condizioni dell'if al posto dell'OR normale....
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 20:51   #6
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
Perché usi il bitwise OR?
cioè?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 20:52   #7
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
cioè?
cioè | al posto di ||
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 20:53   #8
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
scusate è che io è da poco che uso C# e prima usavo il c++ che mi influenza ancora parecchio non sapevo che le stringhe fossero read only....
E comunque cosa cambia in sto or?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 20:55   #9
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
scusate è che io è da poco che uso C# e prima usavo il c++ che mi influenza ancora parecchio non sapevo che le stringhe fossero read only....
E comunque cosa cambia in sto or?
| lo devi utilizzare quando fai delle operazioni booleane sui byte, || lo devi utilizzare per tutti gli altri oggetti...
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 21:05   #10
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
perchè che cambia? io non ho mai avuto nessun problema...
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 21:27   #11
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
perchè che cambia? io non ho mai avuto nessun problema...
Quote:
The operation

x || y
corresponds to the operation

x | y
except that if x is true, y is not evaluated (because the result of the OR operation is true no matter what the value of y might be). This is known as "short-circuit" evaluation.
Di solito è buona norma utilizzare gli operatori che utilizzano lo short-circuit, ovvero analizzano solo il primo operando e solo se necessario anche il secondo....
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 21:32   #12
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
boh non capisco
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 21:54   #13
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
boh non capisco
cosa non capisci?
se A è true e la condizione è A | B devi comunque vedere anche il valore di B prima di proseguire, se invece la condizione è A || B puoi proseguire immediatamente senza conoscere anche il valore di B...
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 21:54   #14
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Anche se non ho ben capito ciò che vuoi ottenere con quel codice ( va sempre in break... o sbaglio ? ), nonostante la stringa sia un oggetto, metodi per "rigirarla" ce ne sono.
Prova questo e vedi se può andare :
Codice:
newoperazione.Remove(a, 1).Insert(a, operazione.Substring(a, 1));
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 22:04   #15
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Anche se non ho ben capito ciò che vuoi ottenere con quel codice ( va sempre in break... o sbaglio ? ), nonostante la stringa sia un oggetto, metodi per "rigirarla" ce ne sono.
Prova questo e vedi se può andare :
Codice:
newoperazione.Remove(a, 1).Insert(a, operazione.Substring(a, 1));
si ma è decisamente + comodo lo StringBuilder
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 22:06   #16
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
ho usato un array char...
adesso invece ho appena aperto un'altra discussione... fatevi sentire!
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 22:08   #17
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
si ma è decisamente + comodo lo StringBuilder
Cioè ? Come sarebbe quello che ho scritto io con lo StringBuilder ?
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 22:10   #18
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
ho usato un array char...
Superfluo, ma se funziona...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2008, 12:39   #19
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Cioè ? Come sarebbe quello che ho scritto io con lo StringBuilder ?
Con StringBuilder poteva accedere direttamente all'array di char circostante e non avrebbe creato 3 nuove stringhe ad ogni iterazione del ciclo
Su un ciclo da 1 milione di iterazioni ti saresti trovato con 3 milioni di stringhe assolutamente inutili con conseguente utilizzo di memoria e occupazione del processore
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2008, 13:52   #20
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Con StringBuilder poteva accedere direttamente all'array di char circostante e non avrebbe creato 3 nuove stringhe ad ogni iterazione del ciclo
Su un ciclo da 1 milione di iterazioni ti saresti trovato con 3 milioni di stringhe assolutamente inutili con conseguente utilizzo di memoria e occupazione del processore
Insomma non vuoi proprio postarlo sto codice che con StringBuilder fa quello che avevo scritto...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
Le due sonde spaziali della missione Spa...
LibreOffice accusa Microsoft: così OOXML...
Frontier impiega 7.536 GPU AMD per tracc...
I problemi di ULA Vulcan Centaur e il ri...
L'alta disponibilità è fac...
NetSuite affida agli agenti di IA il lav...
Gemini Notebook si gestisce dalla chat, ...
Pearla Revela è su Mac: foto e video sul...
Intel APX arriva su Windows 11, in attes...
Un file nella cartella Download pu&ograv...
DLSS 5 troppo pesante? Un modder trova i...
L'India punta sul metano: ISRO sviluppa ...
EA guarda al futuro: Star Wars Battlefro...
Nikkor Z 120-300mm f/2.8 atteso il 28-29...
Sviluppare con l'AI non significa softwa...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v