tft每日頭條

 > 生活

 > c++靜态類用法

c++靜态類用法

生活 更新时间:2024-11-27 08:50:35

反射指程序可以訪問、檢測和修改它本身狀态或行為的一種能力。

程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。

您可以使用反射動态地創建類型的實例,将類型綁定到現有對象,或從現有對象中獲取類型。然後,可以調用類型的方法或訪問其字段和屬性。

c++靜态類用法(C反射Reflection)1

優缺點

優點:

  • 1、反射提高了程序的靈活性和擴展性。

  • 2、降低耦合性,提高自适應能力。

  • 3、它允許程序創建和控制任何類的對象,無需提前硬編碼目标類。

缺點:

  • 1、性能問題:使用反射基本上是一種解釋操作,用于字段和方法接入時要遠慢于直接代碼。因此反射機制主要應用在對靈活性和拓展性要求很高的系統框架上,普通程序不建議使用。

  • 2、使用反射會模糊程序内部邏輯;程序員希望在源代碼中看到程序的邏輯,反射卻繞過了源代碼的技術,因而會帶來維護的問題,反射代碼比相應的直接代碼更複雜。

c++靜态類用法(C反射Reflection)2

  • 它允許在運行時查看屬性(attribute)信息。

  • 它允許審查集合中的各種類型,以及實例化這些類型。

  • 它允許延遲綁定的方法和屬性(property)。

  • 它允許在運行時創建新類型,然後使用這些類型執行一些任務。

  • 查看元數據

    我們已經在上面的章節中提到過,使用反射(Reflection)可以查看屬性(attribute)信息。

    System.Reflection 類的 MemberInfo 對象需要被初始化,用于發現與類相關的屬性(attribute)。為了做到這點,您可以定義目标類的一個對象,如下:

    System.Reflection.MemberInfo info = typeof(MyClass);

    下面的程序演示了這點:

    using System;

    當上面的代碼被編譯和執行時,它會顯示附加到類 MyClass 上的自定義屬性:

    HelpAttribute

    c++靜态類用法(C反射Reflection)3

    實例

    在本實例中,我們将使用在上一章中創建的 DeBugInfo 屬性,并使用反射(Reflection)來讀取 Rectangle 類中的元數據。

    using System;

    當上面的代碼被編譯和執行時,它會産生下列結果:

    Length: 4.5

    ,

    更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

    查看全部

    相关生活资讯推荐

    热门生活资讯推荐

    网友关注

    Copyright 2023-2024 - www.tftnews.com All Rights Reserved