c# - varios - Campo de solo lectura público contra propiedad de sólo obtención
textbox que no se pueda modificar c# (2)
¿Hay casos en los que querría un campo de solo lectura público frente a una propiedad de implementación automática de solo obtención?
public class Foo
{
public readonly string Hello;
public string Hello2 { get; }
}
Ambos solo pueden establecerse durante el constructor y ambos ofrecen acceso de solo lectura fuera de la clase. Estoy un poco cansado por lo que podría faltar algo.
Convertirla en una propiedad en lugar de un campo significa que se puede usar en interfaces.
La implementación exacta (aunque las propiedades automáticas no tienen mucha implementación ...) también se abstrae, por lo que en el futuro podría basarla en una combinación de campos sin romper (compilar) la compatibilidad.
Una razón sería para el enlace de datos: .net implementa el enlace a las propiedades pero no a los campos públicos.
Algunas discusiones aquí: ¿Por qué no podemos usar campos públicos para el enlace de datos en C #?