Я читал много мнений о том, что публичные поля являются злыми, общественные объекты разработаны, чтобы быть публичными, и мы можем делать супер-великие вещи с сеттерами и геттерами и т. Д.Являются ли публичные поля злыми, если только?
Мое понимание, хотя минимальное, поля только для чтения являются (и, что связано с производительностью или нет, я знаю, что FXCop и Resharper подсказывают мне использовать readonly там, где это возможно).
Я знаю, что мы не можем иметь свойство readonly в .NET, но, только что прочитанные поля по-прежнему злы?
«Я знаю, что мы не можем иметь свойство readonly в .NET» - каким образом? У вас может быть свойство, у которого нет setter ... –
@JonSkeet, вы говорите, что 'public string s {get ...}' обрабатывается так же, как 'private readonly string s'? Если это так, я просто удалю свой вопрос – Dave
Ну, это недействительный код для начала. Но вы можете иметь 'private readonly string name; public string Name {get {return name; }} ', который является свойством readonly, поддерживаемым полем readonly. –