La palabra clave using
tiene tres significados dispares:¿Por qué los diseñadores de C# asociaron tres significados diferentes a la palabra clave 'usar'?
- tipo/espacio de nombres de alias
- importación espacio de nombres
- azúcar sintáctica para asegurar Desechar se llama
La documentación llama las dos primeras definiciones directivas (que supongo que significa que están preprocesando en la naturaleza), mientras que la última es una declaración .
Independientemente de que se distingan por sus sintaxis, ¿por qué los desarrolladores del lenguaje complicarían la semántica de la palabra clave al asociarle tres significados diferentes? Por ejemplo, (descargo de responsabilidad: fuera de mi cabeza, sin duda puede haber mejores ejemplos) ¿por qué no agregar palabras clave como alias
y import
? ¿Razones técnicas, teóricas o históricas? Cuota de palabra clave? ;-)
muestra Contrived:
import System.Timers;
alias LiteTimer=System.Threading.Timer;
alias WinForms=System.Windows.Forms;
public class Sample {
public void Action() {
var elapsed = false;
using(var t = new LiteTimer.Timer(_ => elapsed = true) {
while (!elapsed) CallSomeFinickyApi();
}
}
}
"Uso" es una palabra tan vaga.
estaría feliz de ser capaz de utilizar el 'Directiva using' dentro de una función, al igual que en C++. Supongo que esto no es posible exactamente debido a esa dualidad. – liori
FYI, las dos primeras son directivas porque no generan ningún código; solo cambian la tabla de nombres. El último es una declaración porque hace que se genere código. – Gabe
@Gabe Gracias por aclarar eso. –