如何在变量声明中强制执行数组的长度(CS0270)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (44)

为什么C#的设计不允许这样的声明?

public int[10] someInts;
public int[10] someMethod();

这些行引发CS0270错误。这背后的原因是什么?在某些情况下,在接口中强制执行数组长度或覆盖类的能力将非常有用。

提问于
用户回答回答于

数组的长度在你创建时确定。你没有在那里创建任何数组,所以你无法确定长度。你无法在字段签名中定义数组的长度,也无法在方法签名的返回部分中定义数组的长度。

  • 该字段只包含对数组的引用:它的长度取决于创建数组的任何代码并将其分配给字段。
  • 该方法只返回一个数组:它的长度取决于创建数组的任何代码并返回它。

长度是声明的一部分的唯一时间是“固定缓冲区”,但是,它不是一个数组。

扫码关注云+社区

领取腾讯云代金券