c# - .NET 类的属性数量有限制吗?

标签 c# .net oop

收到了为对象添加 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/

相关文章:

c# - 如何检测 WebBrowser 控件中的复选框何时被选中?

c# - 可以动态执行图像操作的图像 API/应用程序?

c# - Entity Framework .include 性能问题

Javascript OOP - 通过接口(interface)或原型(prototype)验证对象时的最佳实践

c# - 带有 SQL Compact Edition 数据库错误 : 26 的 Visual Studio 2008 (C#)

c# - vsto : c# change localization of Excel UI objects, 例如功能区,在运行时

c++ - OOP 和类组合错误

C++ 重载 virtual = 运算符

java - 使视频充满屏幕并保持宽高比

c# - 如何增加 richtextbox 中文本的字体大小