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(结构的不同实例应该指向不同的数组).有没有办法实现这一点,而不必在结构的每个实例中存储额外的引用而不使用静态变量?如果没有,那么在将整个应用程序视为最终用户的"一个应用程序"的同时,使用多个静态实例的最佳方法是什么?
你似乎认为持有对数组的引用意味着复制数组..即你的struct的每个实例都包含数组的副本?不是这种情况.所有结构都包含对数组的引用...指针.在内存中只存在一个数组实例.我不确定这是否会让你获得任何表现积分.
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |