Let’s take a look at this by an example;
After executing this program you will get the output as 0 instead of 4. This is because the property myNumber of class Arithmetics returns a copy of structure of type MyNumber and not reference type. If you replace the struct with class ypu will get result as 4 instead of 0, because in that case a reference will be passed.
What will be the impact of doing so?
If you call a method or access a property that returns a value-type object, do not modify it or call mutators (methods that modify its state or data) on it. You are dealing with a copy and any change you make does not affect the real instance.
Ref: .Net Gotchas