一道值类型和引用类型理解的问题

using System.Collections.Generic;    
using System.Text;   
using System;   
  
namespace ConsoleApplication1   
{   
    
class Value   
    {   
        
public int i = 15;   
    }   
    
class Program   
    {   
        
static void Main(string[] args)   
        {   
            Program t 
= new Program();   
            t.first();   
        }   
        
public void first()   
        {   
            
int i = 5;   
            Value v 
= new Value();   
            v.i 
= 25;   
            second(v, i);   
            Console.WriteLine(v.i);   //20 ?????看不懂 郁闷的问题   
                                 
 //因为在second里,v.i的值被赋为20   
                                 
//之后再second中,v=val;v的引用变成了val,但是此方法中的v还是原来的那个   
  
        }   
        
public void second(Value v, int i)   
        {   
            i 
= 0;   
            v.i 
= 20;   
            Value val 
= new Value();   
            v 
= val;   
            Console.WriteLine(v.i 
+ " " + i + " ");//15,0 可以理解   
        }   
    }   
}
原文地址:https://www.cnblogs.com/dupeng0811/p/1407709.html