收到了为对象添加 800 多个属性的规范。他们对对象在 C#(或 .NET)中可以拥有的属性数量有任何“限制”吗?
对于具有这么多属性的此类对象,是否需要关注它们对性能的影响?
谢谢!
最佳答案
每个程序集的元数据最多可以有 24 位引用/定义。作为一个属性,每个属性需要 2 个方法。因此限制将是 23 位,或 1 << 23 - 1
对于整个组件。
更新:
如果它们只是只读属性,则限制为 1 << 24 - 1
.
第二个问题的答案:
不会,不会有性能开销。简单的属性可能会被 JIT 内联。
一些想法:
您永远不会达到上述限制。想象一下拥有 1600 万处属性(property)。这也需要为名称存储 1600 万个字符串。假设平均名称是 8 个字符,那么您正在查看大小为 ~256MB(属性名称 + 方法名称)的字符串表,然后您甚至还没有开始编码。只是一个想法。
关于c# - .NET 类的属性数量有限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6306792/