gpt4 book ai didi

c# - 使用 IsDefined 而不是 GetCustomAttributes 有好处吗

转载 作者:太空狗 更新时间:2023-10-30 00:15:26 26 4
gpt4 key购买 nike

考虑这样一种情况,其中一个程序集包含一个或多个具有自定义属性 MyAttribute 的类型,您需要获取这些类型的列表。使用 IsDefined 有什么好处吗?与 GetCustomAttributes除了更紧凑的语法?一个人是否公开/隐藏了另一个人没有的东西?一个比另一个更有效吗?

下面是演示每种用法的代码示例:

Assembly assembly = ...
var typesWithMyAttributeFromIsDefined =
from type in assembly.GetTypes()
where type.IsDefined(typeof(MyAttribute), false)
select type;

var typesWithMyAttributeFromGetCustomAttributes =
from type in assembly.GetTypes()
let attributes = type.GetCustomAttributes(typeof(MyAttribute), false)
where attributes != null && attributes.Length > 0
select type;

最佳答案

用这两种方法做了一个快速测试,似乎 IsDefinedGetCustomAttributes 快很多

200000 次迭代

IsDefined average Ticks = 54
GetCustomAttributes average Ticks = 114

希望这有帮助:)

关于c# - 使用 IsDefined 而不是 GetCustomAttributes 有好处吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14719104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com