difference between value type and reference type in c# code project