Everyone loves Fibonacci
Indentation and formatting are fine, as is the algorithm itself.

Your naming is inconsistent, compare n and Value; _value and _FnMinus1.  There are a variety of conventions to follow, but consistency is the most important thing.

_FnMinus1 and _FnMinus2 are only used in one method, so they can be made local to that method.

The API is a little odd:

fib.n = i;
fib.Calculate();
int result = fib.Value;


It would be more convenient if I could do this with one line, like int result = fib.Calculate(i), which would return the value.  Then it seems that n and Value are unnecessary.

Furthermore, right now there is nothing that keeps n and Value synchronized.  The class should maintain the invariant that Value is always the nth Fibanacci number.  You could do the work in the n assignment or mark Value as dirty when n changes.  Either way you essentially get rid of Calculate, so that's another approach.  I prefer getting rid of n and Value, I just mention this in case you think it makes sense to keep them.

Between Implementation 1 and Implementation 2, it's pretty much a wash.  1 has the benefit of only making one allocation.  Since the class is (going to be) stateless, it's perfectly reusable.  On the other hand 2 declares fib inside the loop, which minimizes its scope (which is good).