I do not believe they will compile to the same IL, as get and set for properties are actually functions on the IL level and when dealing with reflection. Here are some reasons to do it though:
- Reflection!
- Serialization/Deserialization only works on public properties, not public fields.
- Debugging, you can set break points on a get or a set, which can help to track down when the variable is accessed, specifically if you are seeing a goofy value and you don't know where it is coming from.