Estoy acostumbrado a los lenguajes de scripting. PHP, Javascript etc. y he escrito algunas aplicaciones Java y C# relativamente simples. Esta es una pregunta en la que repetidamente he necesitado una respuesta, y me imagino que no soy la única.¿Cómo persisto datos sin variables globales?
Digamos que estoy en Javascript.
Tengo la función A(), llamada por la GUI, que recupera algún valor.
La función B(), también llamada por la GUI, requiere ese valor, pero la función B() se llamará un número arbitrario de veces, un período de tiempo arbitrario después de A().
No quiero que A() recalcule el valor cada vez.
Un ejemplo son las credenciales de inicio de sesión. A() solicita un nombre de usuario y B() usa ese valor para anexarlo a un registro cada vez que se invoca.
Para esto, probablemente solo use una variable global.
Ahora, C#. ¡Sin variables globales! ¿Cómo se supone que haga esto?
Editar: goza de las respuestas, pero hay un montón de "Tratar de no usar variables globales", comenta. Lo que sí entiendo, pero me gustaría escuchar los patrones alternativos para este requisito.
Puede considerar leer en "memoization", que es el nombre para la técnica general de recordar cuál era el resultado de una función y volver a utilizarla más tarde sin volver a calcularla. Hay muchas técnicas interesantes para la memorización eficiente. –