|
|
1
3
第二种语法(
假设
然后
与相同
修复:使用列表,没有合理的方法将元素添加到数组中。
如果使用其他没有
为什么使用版本
是等效的 * 属于
请注意,在数组初始值设定项中,可以使用这两个语法来达到相同的效果,但在数组字段的初始值设定项中不能这样做( All possible C# array initialization syntaxes )
虽然
* 当必须观察到变化时,满足规则确实有点复杂-参见埃里克·利珀特的 comment below |
|
|
2
3
在 表示 上下文这些是合法的数组值:
在一个 局部或成员变量初始值设定项 上下文中,这是一个合法的数组初始值设定项:
这是合法的 集合初始值设定项 :
如果
但是在 成员或集合初始值设定项上下文 这是 不 合法数组属性初始值设定项:
(注意,我在这里总结并评论了数组的规则 https://stackoverflow.com/a/5678393/88656 ) 我的理解是,问题是“为什么不呢?” 答案是“没有好的理由”。这只是C#语法以及对象和集合初始值设定项规则的一个奇怪之处。 我曾多次考虑解决这个奇怪的问题,但总有更好的办法来利用我的时间;这是一个基本上对任何人都没有好处的修复,因为解决方法非常简单。 我猜想,没有什么能阻止C#团队设计、指定、实现、测试和发布该功能,除了还有大约一百万个其他功能可以更好地利用他们的时间之外。 如果您对此有强烈的感觉,那么,编译器是开源的;您可以自由地提出该功能并为其辩护。或者,就此而言,实现它并提交一个请求。( 之后 您可以提出该功能。) 在实现您想要的功能之前,您只需使用上面列出的三种“表达式”形式之一。这样做并不累赘。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |