我知道这可能只是一个术语不匹配,但如果我没有弄错,我相信c#是?除非我错过了一些明显的东西?
...
private const uint URL_COUNT = 18;
private string[] _urls;
public Redirector()
{
this._urls = new string[URL_COUNT];
...
}
...
Run Code Online (Sandbox Code Playgroud)
结果"预期值为常量值"并在数组定义中强调URL_COUNT ??
什么URL_COUNT如果它不是一个常量 -ant价值?!?!
编辑 Phew,我想了一会然后我发疯了.我很高兴没有人可以重复这一点,因为这意味着它只是一个本地的事情.谢谢你的帮助.
当您提供尺寸长度和数组初始值设定项时,这将无法编译.例如:
this._urls = new string[URL_COUNT];
Run Code Online (Sandbox Code Playgroud)
会很好,但是:
this._urls = new string[URL_COUNT] { "One", "Two" };
Run Code Online (Sandbox Code Playgroud)
将不会.后者需要不断表达.请注意,const变量不是常量表达式,只是常量值.从C#规范(3.0)参数12.6:
当数组创建表达式包括显式维度长度和数组初始值设定项时,长度必须是常量表达式,并且每个嵌套级别的元素数量必须与相应的维度长度匹配.
这是一个常数,应该可以正常工作.使用C#3编译器为我编译以下代码:
using System;
class Foo
{
private const uint URL_COUNT = 18;
private string[] _urls;
public Foo()
{
this._urls = new string[URL_COUNT];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2483 次 |
| 最近记录: |