Auto-implemented getters and setters vs. public fields

Posted by tclem on Stack Overflow See other posts from Stack Overflow or by tclem
Published on 2008-09-21T17:22:23Z Indexed on 2010/06/03 2:14 UTC
Read the original article Hit count: 287

Filed under:
|
|
|

I see a lot of example code for C# classes that does this:

public class Point {
    public int x { get; set; }
    public int y { get; set; }
}

Or, in older code, the same with an explicit private backing value and without the new auto-implemented properties:

public class Point {
    private int _x;
    private int _y;

    public int x {
        get { return _x; }
        set { _x = value; }
    }

    public int y {
        get { return _y; }
        set { _y = value; }
    }
}

My question is why. Is there any functional difference between doing the above and just making these members public fields, like below?

public class Point {
    public int x;
    public int y;
}

To be clear, I understand the value of getters and setters when you need to do some translation of the underlying data. But in cases where you're just passing the values through, it seems needlessly verbose.

© Stack Overflow or respective owner

Related posts about c#

Related posts about oop