小编Mar*_*kus的帖子

包含接口的两个列表与包含具有两个接口的结构的一个List

我有两个接口.ICacheHolder将由实现游戏对象和IVisualizer逻辑的类实现,该类将成为可视化表示.

public interface ICacheHolder
{
    void updateCacheWithCurrentState(int chachFrame);

    void resizeCache(int newSize);

    T getCacheFrame<T>(int cacheIndex, float interpolationToNext) where T : struct;
}

public interface IVisualizer
{
    void updateVisualization(ICacheHolder cacheHolder, int cacheIndex, float interpolation);
}
Run Code Online (Sandbox Code Playgroud)

每个ICacheHolder都连接到一个IVisualizer对象,关系是1比1.我试图确定它是否更好(性能/内存方面)将它们存储在两个单独的列表中或作为结构存储在一个List中.会有很大的不同吗?如果我使用struct版本会发生拳击吗?我重新调整列表的大小将从100到1000.

版本1:

public class CacheFramework
{
private List<ICacheHolder> cacheHolders = new List<ICacheHolder>();
private List<IVisualizer> visualizers = new List<IVisualizer>();
...
}
Run Code Online (Sandbox Code Playgroud)

版本2:

struct SimulationObject
{
    public ICacheHolder CacheHolder;
    public IVisualizer Visualizer;
}
public class CacheFramework
{
private List<SimulationObject> cacheHolder = new List<SimulationObject>();
...
}
Run Code Online (Sandbox Code Playgroud)

添加和删​​除等操作不会经常进行.只有在游戏开始时才会有很多添加电话.

版本1:

private bool …
Run Code Online (Sandbox Code Playgroud)

c#

7
推荐指数
1
解决办法
126
查看次数

标签 统计

c# ×1