Autore Topic: Array.ReadOnly è la nuova proprietà che rende un array di sola lettura  (Letto 1968 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.262
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
perdonate la domanda banale ma
perchè rendere un array read only?
se non voglio scriverci sopra evito tale operazione.
"e il naufragar m'è dolce in questo mar"

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.262
  • Ne mors quidem nos iunget
    • Mostra profilo
perdonate la domanda banale ma
perchè rendere un array read only?
se non voglio scriverci sopra evito tale operazione.
E' stata la prima domanda che mi sono posto anch'io...  :-\ banalmente.    ;D
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.700
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
mi associo!
Poi ho pensato (incredibile vero!!): "Se le modifiche all'array potessero essere fatte da differenti parti del programma? "
Poter bloccare l'array probabilmente evita di fare controlli o di generare una variabile esterna che "blocchi" o "sblocchi" la scrittura. :-\
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.262
  • Ne mors quidem nos iunget
    • Mostra profilo
 :rolleyes:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.262
  • Ne mors quidem nos iunget
    • Mostra profilo
La didascalia nella pagina dice che "una volta impostata, la proprietà non può essere disattivata".
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
a meno che  in particolari programmi non si voglia in qualche modo "congelare" una immagine dell'array in un particolare istante
naturalmente i tentativi di scrittura sullo stesso non dovranno poi restituire un errore
boh.....
"e il naufragar m'è dolce in questo mar"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.149
  • Tonno verde
    • Mostra profilo
Forse gli serviva per evitare una cosa tipo questa:

Codice: [Seleziona]
Public Sub Main()

  Dim aTypes As String[] = Desktop.Types
  ' Questo codice funziona con l'ultima master e se spuntato gb.desktop
  For Each s As String In aTypes
    Print s
  Next
  Try aTypes.Push("KDE")
  If Error Then Print Error.Text

End
Ottego in console:
Citazione
UBUNTU
GNOME
Read-only array
« Ultima modifica: 31 Luglio 2019, 18:08:44 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Anche io non vedo l'utilità di questa nuova proprietà. :-\ :-\
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.149
  • Tonno verde
    • Mostra profilo
Forse in una classe, per uno che ha difficoltà a capire come funzionano le proprietà di sola lettura, potrebbe far comodo avere a disposizione un array pubblico read only.
Oppure anche solo per fare una prova di codice poi da sostituire con una proprietà  :-\
« Ultima modifica: 31 Luglio 2019, 22:53:37 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.149
  • Tonno verde
    • Mostra profilo
Re:Array.ReadOnly è la nuova proprietà che rende un array di sola lettura
« Risposta #10 il: 01 Agosto 2019, 09:56:13 »
Ecco il motivo, in realtà Property Read con le array non funzionava come ci si sarebbe aspettato.
Vedi progetto allegato

Ho cambiato l'esempio che era concettualmente sbagliato, così credo che sia comprensibile.
« Ultima modifica: 01 Agosto 2019, 12:04:18 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.149
  • Tonno verde
    • Mostra profilo
Re:Array.ReadOnly è la nuova proprietà che rende un array di sola lettura
« Risposta #11 il: 01 Agosto 2019, 13:49:37 »
Allora è stato confermato da Minisini, se vogliamo avere una proprietà realmente di sola lettura che ritorna un array occorre porre l'array a ReadOnly = True
https://lists.gambas-basic.org/pipermail/user/2019-August/067752.html
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.262
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Array.ReadOnly è la nuova proprietà che rende un array di sola lettura
« Risposta #12 il: 01 Agosto 2019, 15:38:43 »
...quindi, mi sembra di capire, è necessaria nel caso di Classi create dal programmatore (?).
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.149
  • Tonno verde
    • Mostra profilo
Re:Array.ReadOnly è la nuova proprietà che rende un array di sola lettura
« Risposta #13 il: 01 Agosto 2019, 15:44:12 »
Direi di si, ma mi sembra di capire solo in alcune circostanze.
Ho fatto una domanda per approfondire e aspetto una risposta, almeno spero...
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.149
  • Tonno verde
    • Mostra profilo
Re:Array.ReadOnly è la nuova proprietà che rende un array di sola lettura
« Risposta #14 il: 02 Agosto 2019, 12:19:43 »
Si potrebbe concludere così:
Se occorre scrivere una classe contenente un array e vogliamo assolutamente essere certi che l'utente non possa scriverci, occorre impostare il suddetto con la proprietà ReadOnly = True.
Questo anche se lo ritornate da una proprietà di sola lettura.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro