Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#编译时字符串哈希到枚举_C#_.net - Fatal编程技术网

c#编译时字符串哈希到枚举

c#编译时字符串哈希到枚举,c#,.net,C#,.net,在C#中,是否可以在编译时对字符串进行散列,并将整数散列值赋给枚举值?大概是这样的: enum Things { First = Hash32("hello"), Second = Hash32("world") } 不,我们不能这样做。我们分配给命名常量的值应该是常量(整数数字类型) 有关更多信息,请查看,您还将阅读: 默认情况下,枚举成员的关联常量值为int类型;它们从零开始,按照定义文本顺序增加一。可以显式指定任何其他整数类型作为

在C#中,是否可以在编译时对字符串进行散列,并将整数散列值赋给枚举值?大概是这样的:

enum Things {
    First  = Hash32("hello"),
    Second = Hash32("world")
}

不,我们不能这样做。我们分配给命名常量的值应该是常量(整数数字类型)

有关更多信息,请查看,您还将阅读:

默认情况下,枚举成员的关联常量值为int类型;它们从零开始,按照定义文本顺序增加一。可以显式指定任何其他整数类型作为枚举类型的基础类型。还可以显式指定关联的常量值


正如@Christos在他的回答中所说的,使用所描述的方法是不可能的。也就是说,有很多自动生成C代码的示例,它们可以作为某种预构建步骤来执行,生成一个带有散列值的.cs文件,然后供代码库的其余部分使用。

这似乎是一个XY问题。与其询问如何将字符串哈希分配给枚举,不如首先解释一下您试图解决的问题。