title: Long variable in C#, why does it return a negative value when it crosses the limits
body: <p>I made an application to resolve the factorial and when I type a number longer than than 20 digits for a <code>long</code> variable , it returns a negative number.  I want to know why a <code>long</code> variable in C# returns a negative value when it crosses the limit? Is it supposed to be like this? </p>