【发布时间】:2013-01-26 10:55:09
【问题描述】:
我正在尝试生成一个我将使用的常量值,如下所示:
public class Foo()
{
public const String ExtensionKey = Guid.NewGuid().ToString();
public int ID { get; set; }
}
编译器抛出错误:
The expression being assigned to 'Foo.ExtensionKey' must be constant
我知道在编译时执行方法(构造函数或类型初始化程序)是不可能的。我正在寻找一种解决方法,将随机生成的 Guid 分配给不同类的不同 ExtensionKey 常量。
编辑:
目的是为每种类型生成一个唯一的 Guid。 Guid 值对于所有对象实例以及应用程序运行时都必须相同。这是Const 的行为,我正在寻找尊重它的方法。
【问题讨论】:
-
在 Visual Studio 中,您可以选择“工具”-“创建 GUID”。或者在 Windows PowerShell 中,您可以说
[Guid]::NewGuid().ToString()。这会给你一个Guid。然后你可以使那个特定的Guid你string的字符串表示常量。 -
你应该把它设置为答案
-
我扩展了该评论并将其变成了答案。
标签: c# compiler-construction compiler-errors constants guid