同一个应用程序中的多个静态变量范围?

use*_*608 2 .net c# performance static scope

在同一个应用程序中设置多个静态范围的最佳方法是什么?我有一些结构,用作访问数组的包装器.

这是一个例子:

class FooClass{
   static int[] BarArray;
}

struct FooStruct{
    public int BarArrayIndex;

    public int BarArrayValue { 
      get { return FooClass.BarArray[BarArrayIndex]; } 
      set { FooClass.BarArray[BarArrayIndex] = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

出于性能原因,我不想在每个FooStruct实例中存储对BarArray的引用,因此我将数组声明为static.但是,将来我可能需要同时使用多个不同的BarArrays(结构的不同实例应该指向不同的数组).有没有办法实现这一点,而不必在结构的每个实例中存储额外的引用而不使用静态变量?如果没有,那么在将整个应用程序视为最终用户的"一个应用程序"的同时,使用多个静态实例的最佳方法是什么?

iDe*_*Fun 5

你似乎认为持有对数组的引用意味着复制数组..即你的struct的每个实例都包含数组的副本?不是这种情况.所有结构都包含对数组的引用...指针.在内存中只存在一个数组实例.我不确定这是否会让你获得任何表现积分.