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 可以理解
}
}
}
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 可以理解
}
}
}