.GetProperties()的大O

Tra*_*s J 5 c# reflection getproperties

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

假设有这个定义的类:

public class Reflector
{
 public string name { get; set; }
 public int number { get; set; }
 public bool flag { get; set; }
 public List<string> etc { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后进行此调用:

var reflect = new Reflector();
PropertyInfo[] properties = reflect.GetType().GetProperties();
Run Code Online (Sandbox Code Playgroud)

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

Hen*_*man 3

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

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

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