Come fare riferimento a ByRef e ByVal in un'etichetta a discesa? [chiuso]

10

La MSDN pagina su ByRef e ByVal parole chiave non è molto utile; a meno che non l'abbia saltato in qualche modo, vengono semplicemente chiamati "parole chiave" ovunque.

Uno dei principali contributori del progetto Rubberduck sta lavorando su un Campo di incapsulamento molto interessante refactoring e l'interfaccia utente sta procedendo molto bene .. eccetto che ho un problema con l'etichetta sopra il menu a discesa per ByRef / ByVal , che dice "Accessibilità":

Nonmipiace"Accessibilità" perché lo sto utilizzando altrove per Public / Private / Friend modificatori di accesso dove sembra più accurato.

Non voglio usare "Modificatore" perché IMO è solo un abbreviazione di "modificatore di accesso".

Mi piacerebbe che l'etichetta fosse accurata, ma il mio vocabolario è apparentemente carente e non so come chiamare queste parole chiave.

Che cosa dovrebbe dire questa etichetta, per essere precisi? Qual è la parola che sto cercando? Quale "famiglia di parole chiave" fa ByRef / ByVal appartiene a?

    
posta Mathieu Guindon 17.12.2015 - 18:20
fonte

5 risposte

15

In questo caso, userei "Passa come" (o "Pass").

Hai un flusso che corrisponde perfettamente a questo utilizzo.

  • Nome variabile : foo
  • Passa come: ByVal / Passa: ByRef

Ciò si adatta perfettamente al tuo flusso di lavoro ed è esattamente ciò che l'articolo che hai indicato.

Mentre leggi le tue opzioni, si legge perfettamente quando usi "Passa come", poiché puoi semplicemente leggere l'intestazione e selezionare il testo in modo appropriato: "'Nome variabile' foo, 'Passa come' valore".

Se vuoi leggere leggermente meglio puoi rendere le opzioni di elenco "Valore" e "Riferimento" a seconda che il tuo pubblico di destinazione sia programmatore VBA o programmatore non VBA che potrebbe essere leggermente meno familiare con le parole chiave ByVal e ByRef.

In alternativa, puoi cambiarlo in "Pass:" e renderlo "Per riferimento (ByRef)" e "Per valore (ByVal)" nel menu a discesa. Sembra che il tuo menu a discesa abbia lo spazio per mostrare tutto questo testo. O solo le parole chiave ByRef / ByVal.

    
risposta data 17.12.2015 - 18:27
fonte
6

Utilizzerei uno di questi 3 termini per etichettare un menu a discesa che selezionava:

  1. Semantica
  2. Passa
  3. Modificatore parametro
risposta data 17.12.2015 - 18:25
fonte
4

"Pass By Semantics" è probabilmente il più vicino a quello che stai cercando.

    
risposta data 17.12.2015 - 18:25
fonte
4

Il termine più esatto e formale per questo sarebbe "Aliasing semantics".

Quando viene utilizzato ByRef , il nome all'interno della funzione è un alias per la variabile del chiamante - tutte le modifiche a una sono immediatamente visibili all'altra. Con ByVal , il nome all'interno della funzione è una copia distinta della variabile del chiamante (ovviamente, sia la copia del chiamante che quella della funzione possono riferirsi allo stesso oggetto, ma sono distinte in quanto la riassegnazione del parametro all'interno della funzione non riassegna la variabile del chiamante).

Le opzioni sarebbero

  • Alias ( ByRef )
  • Copia ( ByVal )

Alcune piattaforme aggiungono una terza possibilità, in cui l'aliasing della variabile del chiamante viene eseguita ma non è consentito per più di un parametro per creare alias di oggetti sovrapposti. (L'idea alla base della parola chiave C restrict , si trova anche in IDL, dove la parola chiave attributo è unique ). .NET non ha un buon modo per codificare questa conoscenza.

    
risposta data 17.12.2015 - 20:06
fonte
-1

Lo chiamerei una "[argomento] categoria".

L'argomento ha un nome, un tipo e una categoria.

    
risposta data 17.12.2015 - 18:49
fonte

Leggi altre domande sui tag