c#编译时字符串哈希到枚举
在C#中,是否可以在编译时对字符串进行散列,并将整数散列值赋给枚举值?大概是这样的:c#编译时字符串哈希到枚举,c#,.net,C#,.net,在C#中,是否可以在编译时对字符串进行散列,并将整数散列值赋给枚举值?大概是这样的: enum Things { First = Hash32("hello"), Second = Hash32("world") } 不,我们不能这样做。我们分配给命名常量的值应该是常量(整数数字类型) 有关更多信息,请查看,您还将阅读: 默认情况下,枚举成员的关联常量值为int类型;它们从零开始,按照定义文本顺序增加一。可以显式指定任何其他整数类型作为
enum Things {
First = Hash32("hello"),
Second = Hash32("world")
}
不,我们不能这样做。我们分配给命名常量的值应该是常量(整数数字类型) 有关更多信息,请查看,您还将阅读: 默认情况下,枚举成员的关联常量值为int类型;它们从零开始,按照定义文本顺序增加一。可以显式指定任何其他整数类型作为枚举类型的基础类型。还可以显式指定关联的常量值
正如@Christos在他的回答中所说的,使用所描述的方法是不可能的。也就是说,有很多自动生成C代码的示例,它们可以作为某种预构建步骤来执行,生成一个带有散列值的.cs文件,然后供代码库的其余部分使用。这似乎是一个XY问题。与其询问如何将字符串哈希分配给枚举,不如首先解释一下您试图解决的问题。