C# 传递值和引用之间的差异
我试图理解按值调用和按引用调用之间的区别。有人向我解释说,通过引用更改实际内存位置值,而通过值调用只更改实例(虚拟值),而不更改实际值。所以我试着让那个程序通过值和引用来检查它是如何工作的。我的程序不工作,我是否正确实现了逻辑 以下是已解决和工作代码的修订版本C# 传递值和引用之间的差异,c#,visual-studio-2010,pass-by-reference,pass-by-value,C#,Visual Studio 2010,Pass By Reference,Pass By Value,我试图理解按值调用和按引用调用之间的区别。有人向我解释说,通过引用更改实际内存位置值,而通过值调用只更改实例(虚拟值),而不更改实际值。所以我试着让那个程序通过值和引用来检查它是如何工作的。我的程序不工作,我是否正确实现了逻辑 以下是已解决和工作代码的修订版本 static void Main(string[] args) { Program pro = new Program(); int i = 1; Console.Writ
static void Main(string[] args)
{
Program pro = new Program();
int i = 1;
Console.WriteLine("Call By Value: ");
pro.byVal(i);
Console.WriteLine(i);
Console.ReadKey();
Console.WriteLine("\n\n\nCall By Reference: ");
pro.byRef(ref i);
Console.WriteLine(i);
Console.ReadKey();
}
public void byVal(int i) //******* Call by Value *******//
{
i = 2;
}
public void byRef(ref int i) //******* Call by Refrence *******//
{
i = 3;
}
你需要换电话
byRef(i);
到
如果您想通过引用调用它。您需要更改调用
byRef(i);
到
如果你想引用它。这段代码真的可以编译吗?你说的“我的程序不工作”是什么意思?你想要实现什么?请参阅本文:是的,@MongZhuI确实收到编译器错误:
非静态字段、方法或属性“testproj.Program.byVal(int)”需要对象引用
创建类文件的对象,然后通过该对象调用方法。这是修订版:这段代码真的可以编译吗?你说的“我的程序不工作”是什么意思?你想要实现什么?请参阅本文:是的,@MongZhuI确实收到编译器错误:非静态字段、方法或属性“testproj.Program.byVal(int)”需要对象引用
创建类文件的对象,然后通过该对象调用方法。以下是修订版本: