【发布时间】:2018-12-29 15:07:25
【问题描述】:
我的问题是关于 C# 语言行为的。我有一些代码,其中有一些具有不同值的静态数组和一个在不同时间设置为这些数组之一的非静态字段数组。我的假设是,如果调用下面的 UpdateArrayToUse,它会通过引用设置它,这意味着如果稍后再次调用 LoadArrays 并且磁盘值已更改,那么非静态字段 Options 将已经更改。但是,这不是我看到的行为。我很想知道是否有人对此有任何见解。
private static string[] StaticArray1;
private static string[] StaticArray2;
public static void LoadArrays()
{
//Loads arrays from disk, can be changed elsewhere
StaticArray1 = LoadArray1();
StaticArray2 = LoadArray2();
}
public void UpdateArrayToUse(int i)
{
if(i == 1){
Options = StaticArray1;
return;
}
Options = StaticArray2;
}
public string[] Options;
【问题讨论】:
-
代码中的三个数组都不是非静态的,尽管您的问题暗示应该有一个?
-
该死的,是的,当我为这个问题近似真实代码时,这是一个错字。固定。
标签: c# reference static non-static