C# Automatic properties to wrap private fields?

c#, encapsulation, private, properties

Solution

Is there any way to use an automatic property to encapsulate a private field?

Yes; that is exactly what an automatically implemented property is. Simply: the compiler declares the field for you - you never see the field directly. Perhaps the real question here should be:

If I use an automatically implemented property, can I access the underlying field directly?

To which the answer is: no; just access the property instead. After JIT inlining, you'll never know the difference anyway.

Problem

Can I encapsulate a private field through an automatic property in C#? When i use C# properties i surely can encapsulate private fields like. ``` private string owner; public string Owner { get { return owner; } set { owner=value;} } ``` What happens when i use an automatic property? ``` public string Owner { get; set; } ``` That way I only interact with the property itself, right? Is there any way to use an automatic property to encapsulate a private field? How does it work?

Original source