C# 在私有函数中填充全局数据表?

C# 在私有函数中填充全局数据表?,c#,datatable,C#,Datatable,我在我的代码(C#)中发现了一些奇怪的东西。 我可以从一个公共的空白处填充一个数据表。 举个例子,我用与私有函数中公共void中的数据表相同的名称调用私有函数,在私有void中,数据表的名称与公共部分中的名称相同,这只是填充了公共void,而私有函数中没有返回命令,这怎么可能呢 我的代码: public void start() { DataTable deliveryLines = new DataTable(); Orders(deliveryLines); // Pri

我在我的代码(C#)中发现了一些奇怪的东西。 我可以从一个公共的空白处填充一个数据表。 举个例子,我用与私有函数中公共void中的数据表相同的名称调用私有函数,在私有void中,数据表的名称与公共部分中的名称相同,这只是填充了公共void,而私有函数中没有返回命令,这怎么可能呢

我的代码:

public void start() 
{
    DataTable deliveryLines = new DataTable(); 
    Orders(deliveryLines); // Private function 

    //And here, deliveryLines containts the information from the private   void. 
} 

private void Orders(DataTable deliveryLines) 
{ 
    ////Getting Filled blablabla 
}

DataTable
是一种引用类型。引用类型的变量存储对其数据的引用。如果将这样的变量传递给另一个方法,则只复制引用本身,而不复制它所指向的对象

在方法
start()
中的代码变量
deliveryLines
和方法
Orders(DataTable)中的参数变量
deliveryLines
指向相同的内存位置

见:


请提供一份报告,让我们了解您的问题哇,这令人难以置信地困惑!一定要一个密码。可能也值得一读:标记为未明确关闭。public void start(){DataTable deliveryLines=new DataTable();Orders(deliveryLines);//Private function//这里,deliveryLines包含来自Private void的信息。}Private void Orders(DataTable deliveryLines){///Getting Filled bla}使用按钮更新您的问题