Estoy tratando de entender las consideraciones de diseño del equipo que creó el método Environment.GetCommandLineArgs
.Environment.GetCommandLineArgs: ¿por qué es un método? ¿Por qué no una propiedad?
Podría haber sido una propiedad estática, muy similar a System.Web.HttpContext.Current
. Después de todo, el valor devuelto no debería cambiar una vez que esté disponible. Por lo tanto, se parece más a una propiedad del proceso actual en ejecución.
Sé que cualquier propiedad en .NET es un azúcar sintáctico para los métodos getter/setter. Pero esa es la razón exacta para usar una propiedad en lugar de un método getter explícito.
¿O tal vez hay algo que me falta aquí?
¿Qué opinas?
El equipo de BCL respetó una distinción semántica entre propiedades y métodos. Las propiedades solo se usan cuando el programador puede/debe considerar una llamada equivalente al acceso a un campo. En este caso, 'GetCommandLineArgs' no funciona de esa manera, entonces es un método. Piense en ello como recuperar o calcular el valor de nuevo cada vez. –