2013-04-25 59 views
2

我有一個擴展方法來計算基類型和派生類型之間的距離,使相同的類型將返回值爲0和直接子類型將返回值爲1.什麼是最簡潔和通常用術語來描述這個標量?什麼術語用於表示繼承層次結構中兩種類型之間的距離?

更具體地說,我可以命名以下方法,使之有意義並有效傳達意圖?

public static int? CalculateHowDeeplyDerivedTheDescendantTypeIsFromTheBaseType(this Type baseType, Type descendantType) 
    { 
     baseType = baseType ?? typeof(System.Object); 
     descendantType = descendantType ?? typeof(System.Object); 
     if (!baseType.IsAssignableFrom(descendantType)) 
      return descendantType.IsAssignableFrom(baseType) 
         ? -1*CalculateHowDeeplyDerivedTheDescendantTypeIsFromTheBaseType(descendantType, baseType) 
         : null; 
     if (baseType == descendantType) 
      return 0; 
     return CalculateHowDeeplyDerivedTheDescendantTypeIsFromTheBaseType(baseType, descendantType.BaseType) + 1; 
    } 

回答

3

我認爲你要找的術語是Depth of Inheritance

繼承深度,繼承樹的也被稱爲深度(DIT),被定義爲

3

蜥蝪比爾可以是在「從節點到該樹的根的最大長度」一些東西。但是,作爲與Graph Theory相關的一般選項,您可以將其稱爲LengthOfPathToDerivedClass。

鏈接,連接或路徑的長度。指與鏈接,連接或路徑關聯的標籤。此標籤可以是距離,流量,容量或該鏈接的任何屬性。路徑的長度是此路徑中的鏈接(或連接)的數量。

相關問題