我刚刚开始在 .NET 应用程序中使用 SQLite。从文档中,我看到可用的数据类型有 NULL、INTEGER、REAL、TEXT 和 BLOB。但是,在示例中,我发现类型为 TIMESTAMP 的列用于以“YYYY-MM-DD HH:MM:SS.SSS”格式存储时间戳。我正在使用“DB Browser for SQLite”应用程序进行测试,TEXT 和 TIMESTAMP 数据类型都可以很好地以上述格式存储时间戳。所以我的问题是:
我定义了以下枚举:
typedef enum {
F105 = 0x00,
F164 = 0x10,
F193 = 0x20,
F226 = 0x30,
F227 = 0x40
}BOARD_TYPE;
Run Code Online (Sandbox Code Playgroud)
为了使代码可读,我想在使用其中一个成员时使用枚举名称.像这样:
void do_work(uint8_t board_type) {
if (board_type == BOARD_TYPE.F164) {
// Do stuff...
}
}
Run Code Online (Sandbox Code Playgroud)
现在,这不编译.我收到一条错误消息"'BOARD_TYPE'之前的预期表达式".
那么使用枚举成员同时引用枚举名称以提高代码可读性的正确方法是什么?
我正在尝试根据对象中的Enum类型属性在集合中查找对象.但它总是返回NULL,即使我验证集合确实包含具有预期属性值的对象.为什么是这样?
public enum FooEnum
{
First, Second, Third, Fourth
}
public class Foo
{
public Enum EnumValue { get; set; }
}
class Program
{
static void Main(string[] args)
{
var fooCollection = new List<Foo>();
fooCollection.Add(new Foo() { EnumValue = FooEnum.First });
fooCollection.Add(new Foo() { EnumValue = FooEnum.Second });
fooCollection.Add(new Foo() { EnumValue = FooEnum.Third });
var fooSearchInstance = new Foo() { EnumValue = FooEnum.Fourth };
var fooFoundInstance = fooCollection.Find(f => f.EnumValue == fooSearchInstance.EnumValue); // NULL, for obvious reasons
fooSearchInstance.EnumValue …Run Code Online (Sandbox Code Playgroud)