2014-02-05 35 views
1

我有一個C#中使用.Net 4.0的InvestmentReturnCalculator抽象類。通用的InvestmentReturnCalculator<T>類通過約束來擴展該類where T : IBusinessVisual Studio UML類圖不顯示通用約束

Visual Studio 2012中生成的類圖如下所示。它不顯示constraint。這個約束是缺失設計中最重要的部分。

什麼是在UML類圖中顯示constraint的解決方案/解決方法?

注:我已經提到UML Class Diagrams: Guidelines;但這並沒有解決這個問題。

enter image description here

代碼

public abstract class InvestmentReturnCalculator 
{ 
    public double ProfitElement { get; set; } 
    public abstract double GetInvestmentProfit(); 

    public double CalculateBaseProfit() 
    { 
     return 5; 
    } 
} 

public abstract class InvestmentReturnCalculator<T> : InvestmentReturnCalculator where T : IBusiness 
{ 
    public T Business { get; set; } 

} 
+0

參考:http://stackoverflow.com/questions/2264232/can-u-tell-me-how-to-display-a-composition-dependency-relationship-in-class-di – Lijo

回答

1

從參考引文:

設置名稱屬性的參數名稱爲您的模板類型, 例如密鑰。

設置參數類型。默認是Class。

如果您希望參數僅接受 特定基類的派生類,請將約束值設置爲您想要的基類 。

問題在哪裏?

順便說一句,儘量不要將此約束值與正常約束(設置爲註釋)混合,並且不要這樣命名。

+0

我創建的類圖來自現有的代碼。儘管代碼有約束,但並未在圖中反映出來。我需要採取哪些額外措施來反映它? – Lijo

+0

所有逆向工程只有有限的功能,即使在專門的建模軟件SW,更不用說VS.所以,請嘗試手動設置引文中的內容。至少,我希望,VS能夠維持目前的應用狀態。 – Gangnus

+1

你沒有注意到,這個類正確顯示 - T應該出現在類矩形的SE角的小矩形中,而不是在<> – Gangnus