c# - .GetProperties() 的大 O

标签 c# reflection getproperties

如果有 n 个属性,那么 .GetProperties 的 Big-O 是 O(n) 还是反射中涉及的过程增加了复杂性?

假设有这个定义的类:

public class Reflector
{
 public string name { get; set; }
 public int number { get; set; }
 public bool flag { get; set; }
 public List<string> etc { get; set; }
}

然后调用:

var reflect = new Reflector();
PropertyInfo[] properties = reflect.GetType().GetProperties();

.GetProperties() 的时间复杂度是多少,即 Big-O?考虑到有 4 个属性,这只需要 4 次迭代还是比这更复杂?或者,它是否具有一些标准的复杂性集才能进入列表 - 这似乎仍然必须是 O(n) 才能构建属性数组?

最佳答案

Big-O 是关于渐近复杂性的,换句话说,O(n) 仅与 n 的大值相关。
一个类永远不会有足够的属性来使它相关。

出于实际目的,您不妨将其视为 O(1),但常数非常大。

此类问题以纳秒表示,而不是大 O 表示法。

关于c# - .GetProperties() 的大 O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878743/

相关文章:

c# - 在 C#7 中,如何将 "roll my own"类任务类型与异步一起使用?

c# - 具有类约束的字段

c# - 嵌入 vs 引用我的依赖项 : Best practices for . NET/NuGet 包?

java - 如何访问java属性文件

c# - 如何在没有自定义类类型的情况下获取一个类的属性

c# - 对于 Windows Phone 7, "assembly"是什么?

java - 使用 HashMap 和反射来调用具有可变参数类型的方法

java - 构造不可变对象(immutable对象)的抽象生成器

c# - 获取静态字段的值

java - 如何使用 Java 读取 Android 属性