Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
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
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


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
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...
Cowboy Space Corp. presenta il suo razzo...
Per NetSuite il vantaggio nell'IA sta ne...
Scoperta la zona d'origine del segnale W...
La Stazione Spaziale Internazionale cont...
La Difesa statunitense ha pubblicato la ...
vivo X500 Pro e Pro Max ufficiali: tanta...
iOS 27.2: l'iPhone chiede ai numeri scon...
Final Cut Pro integra MotionVFX e Apple ...
iMac M6 da 1.829 euro, MacBook Pro 14 M6...
RayNeo GT a 313,65€ su Amazon: occhiali ...
NVIDIA e Meta: 3 miliardi di dollari e p...
PHP2Shell: sfruttate attivamente le due ...
Raffreddamento passivo senza elettricità...
La deforestazione in Amazzonia crolla a ...
La luce del sole a mezzanotte, ecco come...
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: 00:18.


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