有没有办法使用这样的东西:
private const int MaxTextLength = "Text i want to use".Length;
我认为它比使用类似的东西更具可读性且更不容易出错:
private const int MaxTextLength = 18;
有没有办法让文本的长度成为常量变量的来源?
答案 0 :(得分:24)
private readonly static int MaxTextLength = "Text i want to use".Length;
答案 1 :(得分:15)
使用static readonly
代替const
。
常量必须是编译时间常量
答案 2 :(得分:11)
不幸的是,如果使用const关键字,'='右侧的值必须是编译时常量。使用“string”.length需要执行.NET代码,这只能在应用程序运行时发生,而不是在编译期间发生。
您可以考虑将字段设为只读而不是const。
答案 3 :(得分:1)
值是否需要为const?静态只读适用于您的情况吗?
private static readonly int MaxTextLength = "Text i want to use".Length;
这将允许您以与第一个示例类似的方式编写代码。
答案 4 :(得分:0)
不确定你为什么要这样做,但是......
private const string MaxText = "Text i want to use.";
private static int MaxTextLength { get { return MaxText.Length; } }