У меня есть метамодель, который построен так:сравнение списков с пользовательскими объектами, которые имеют общий суперкласс
class ModelElement
{
string id;
}
class Package : ModelElement
{
List<Package> nestedPackages;
List<Class> ownedClasses;
}
class Class : ModelElement
{
}
Теперь я построил две модели, и я хочу, чтобы проверить, если они идентичны. Я хотел бы сравнить идентификаторы элементов, и я не хочу писать метод для любого типа элемента.
Package a; //pretend both have classes
Package b; //and nested packages
compare(a.nestedPackages, b.nestedPackages);
compare(a.ownedClasses; b.OwnedClasses);
Поскольку класс и пакет оба наследуются от ModelElement, оба имеют идентификаторы. Поэтому я хочу написать функцию «сравнить», которая сравнивает идентификаторы. Я думал об использовании Generics, но общий тип данных не имеет атрибута «id». Есть идеи?
Это работает для меня, теперь мне просто нужно прочитать документацию, чтобы понять, почему:) – twittfort
Отредактировано для включения ссылок MSDN в документацию. :) –