• <bdo id='IxBHd'></bdo><ul id='IxBHd'></ul>

    1. <small id='IxBHd'></small><noframes id='IxBHd'>

    2. <tfoot id='IxBHd'></tfoot>

      <i id='IxBHd'><tr id='IxBHd'><dt id='IxBHd'><q id='IxBHd'><span id='IxBHd'><b id='IxBHd'><form id='IxBHd'><ins id='IxBHd'></ins><ul id='IxBHd'></ul><sub id='IxBHd'></sub></form><legend id='IxBHd'></legend><bdo id='IxBHd'><pre id='IxBHd'><center id='IxBHd'></center></pre></bdo></b><th id='IxBHd'></th></span></q></dt></tr></i><div id='IxBHd'><tfoot id='IxBHd'></tfoot><dl id='IxBHd'><fieldset id='IxBHd'></fieldset></dl></div>

        <legend id='IxBHd'><style id='IxBHd'><dir id='IxBHd'><q id='IxBHd'></q></dir></style></legend>

        使用 IsDefined 而不是 GetCustomAttributes 有什么好处吗

        时间:2023-07-26

            <bdo id='HGziG'></bdo><ul id='HGziG'></ul>
          • <tfoot id='HGziG'></tfoot>
                <tbody id='HGziG'></tbody>
              • <i id='HGziG'><tr id='HGziG'><dt id='HGziG'><q id='HGziG'><span id='HGziG'><b id='HGziG'><form id='HGziG'><ins id='HGziG'></ins><ul id='HGziG'></ul><sub id='HGziG'></sub></form><legend id='HGziG'></legend><bdo id='HGziG'><pre id='HGziG'><center id='HGziG'></center></pre></bdo></b><th id='HGziG'></th></span></q></dt></tr></i><div id='HGziG'><tfoot id='HGziG'></tfoot><dl id='HGziG'><fieldset id='HGziG'></fieldset></dl></div>
              • <legend id='HGziG'><style id='HGziG'><dir id='HGziG'><q id='HGziG'></q></dir></style></legend>

                <small id='HGziG'></small><noframes id='HGziG'>

                  本文介绍了使用 IsDefined 而不是 GetCustomAttributes 有什么好处吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  考虑一个程序集包含一个或多个类型的情况,该类型具有自定义属性MyAttribute,并且您需要获取这些类型的列表.使用 IsDefined vs. GetCustomAttributes 除了更紧凑的语法?一个人是否暴露/隐藏了另一个人没有的东西?一个比另一个更有效吗?

                  Consider the case where an assembly contains one or more types attributed with a custom attribute MyAttribute and you need to get a list of these types. Is there any benefit of using IsDefined vs. GetCustomAttributes aside from the more compact syntax? Does one expose/hide something that the other doesn't? Is one more efficient than the other?

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

                  Here is a code sample demonstrating each usage:

                  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 快很多

                  Done a quick test with the two methods and it seems IsDefined is a lot faster than GetCustomAttributes

                  200000 次迭代

                  IsDefined average Ticks = 54
                  GetCustomAttributes average Ticks = 114
                  

                  希望这会有所帮助:)

                  这篇关于使用 IsDefined 而不是 GetCustomAttributes 有什么好处吗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:如何从属性中抛出编译错误? 下一篇:C# Attributes 强制属性

                  相关文章

                    <bdo id='xBbAl'></bdo><ul id='xBbAl'></ul>

                  <small id='xBbAl'></small><noframes id='xBbAl'>

                  <legend id='xBbAl'><style id='xBbAl'><dir id='xBbAl'><q id='xBbAl'></q></dir></style></legend>

                    <i id='xBbAl'><tr id='xBbAl'><dt id='xBbAl'><q id='xBbAl'><span id='xBbAl'><b id='xBbAl'><form id='xBbAl'><ins id='xBbAl'></ins><ul id='xBbAl'></ul><sub id='xBbAl'></sub></form><legend id='xBbAl'></legend><bdo id='xBbAl'><pre id='xBbAl'><center id='xBbAl'></center></pre></bdo></b><th id='xBbAl'></th></span></q></dt></tr></i><div id='xBbAl'><tfoot id='xBbAl'></tfoot><dl id='xBbAl'><fieldset id='xBbAl'></fieldset></dl></div>

                  1. <tfoot id='xBbAl'></tfoot>