Sunday, June 2, 2019

c# - Public Fields versus Automatic Properties

We're often told we should protect encapsulation by making getter and setter methods (properties in C#) for class fields, instead of exposing the fields to the outside world.


But there are many times when a field is just there to hold a value and doesn't require any computation to get or set. For these we would all do this number:


public class Book
{
private string _title;
public string Title
{
get{ return _title; }
set{ _title = value; }
}
}

Well, I have a confession, I couldn't bear writing all that (really, it wasn't having to write it, it was having to look at it), so I went rogue and used public fields.


Then along comes C# 3.0 and I see they added automatic properties:


public class Book
{
public string Title {get; set;}
}

which is tidier, and I'm thankful for it, but really, what's so different than just making a public field?


public class Book
{
public string Title;
}

No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...