2014-02-05 4 views
1

У меня есть абстрактный класс InvestmentReturnCalculator в C# с использованием .Net 4.0. Общий класс InvestmentReturnCalculator<T> расширяет этот класс с ограничением where T : IBusinessVisual Studio UML Class Diagram не показывает общие ограничения

Диаграмма классов, сгенерированная в Visual Studio 2012, приведена ниже. Он не показывает constraint. Это ограничение является самой важной частью проекта, которая отсутствует.

Каково решение/обходной путь для отображения constraint в диаграмме классов UML?

Примечание: я упомянул 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

цитата из справки:

Установить имя свойства на имя параметра для вашего типа шаблона, для Например, Key.

Установить параметр Вид. По умолчанию используется класс.

Если вы хотите, чтобы параметр принимал только производные классы определенного базового класса , установите Ограниченное значение в базовый класс, который вам нужен .

В чем проблема?

BTW, старайтесь не смешивать это Ограниченное значение с нормальным ограничением (задано как примечание) и не называйте его так.

+0

Диаграмма классов, которую я создал из существующего кода. Хотя код имеет ограничение, что не отражено в диаграмме. Какие дополнительные шаги я должен предпринять, чтобы отразить это? – Lijo

+0

Все обратное проектирование имеет ограниченную функциональность даже на специализированном моделировании SW, не говоря уже о VS. Итак, попробуйте вручную установить то, что в цитате. По крайней мере, я надеюсь, что VS может поддерживать диаграммы вплоть до текущего состояния приложения. – Gangnus

+1

Вы не заметили, что сам класс показан правильно - T должен появиться в маленьком прямоугольнике в углу SE прямоугольника класса, а не в <> – Gangnus

Смежные вопросы