从C背景来看,在C#中实现const参考数据表/结构是什么好的方法?

前端之家收集整理的这篇文章主要介绍了从C背景来看,在C#中实现const参考数据表/结构是什么好的方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将简要介绍一下我熟悉使用C的实现方法.我认为重点在于如何使用数据,而不是像在这样的例子中所做的那样:
typedef struct  
{
  const char  *description;
  uint32_t    colour_id;      
  uint32_t    quantity;
} my_data_t;

const my_data_t ref_data[] =
{
  {"Brown Bear",0x88,10},{"Blue Horse",0x666,42},{"Purple Cat",123456,50},};

void show_animals( void )
{
  my_data_t *ptr;

  ptr = &ref_data[2];

  console_write("Animal: %s,Colour: 0x%8X,Num: %d",ptr->description,ptr->colour_id,ptr->quantity);
}

所以我正在寻找关于如何在C#中实现类似的数据表或参考数据的建议.我得到了较高级别的东西,但是我还没有处理任何表驱动的数据方法.

作为一个例子,我在C#中尝试做的是组合框允许从描述字段中进行选择,而颜色ID和数量可能用于更新只读框.

这是一个非常简单的例子,但如果我可以确定一个很好的方法来实现这一点,我可以把它推断到我正在做的事情.

解决方法

我会使用一个不变类的 ReadOnlyCollection<T>.
public class MyData
{
    public MyData(string description,int colorId,int quantity)
    {
        Description = description;
        ColorId = colorId;
        Quantity = quantity;
    }
    public string Description {get; private set; }
    public int ColorId {get; private set; }
    public int Quantity {get; private set; }
}


...

public static readonly ReadOnlyCollection<MyData> refData =
    new ReadOnlyCollection<MyData>(
        new [] {
            new MyData("Brown Bear",10),new MyData("Blue Horse",42),new MyData("Purple Cat",50)
            });

猜你在找的C&C++相关文章