gpt4 book ai didi

c# - 来自 C 背景,在 C# 中实现 const 引用数据表/结构的好方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 09:11:03 25 4
gpt4 key购买 nike

我将给出一个我熟悉的使用 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# 中尝试做的是有一个组合框,允许从 description 字段中进行选择,而 colour idquantity 可用于更新只读框。

这是一个非常简单的示例,但如果我能确定一种实现它的好方法,我就可以将其推断为我实际正在做的事情。

最佳答案

我会使用不可变类的 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", 0x88, 10),
new MyData("Blue Horse", 0x666, 42),
new MyData("Purple Cat", 123456, 50)
});

关于c# - 来自 C 背景,在 C# 中实现 const 引用数据表/结构的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com