我有一个像这样构建的元模型:
class ModelElement
{
string id;
}
class Package : ModelElement
{
List<Package> nestedPackages;
List<Class> ownedClasses;
}
class Class : ModelElement
{
}
现在我已经建立了两个模型,我想检查它们是否相同。我想比较元素的 ID,我不想为任何类型的元素编写方法。
Package a; //pretend both have classes
Package b; //and nested packages
compare(a.nestedPackages, b.nestedPackages);
compare(a.ownedClasses; b.OwnedClasses);
由于 Class 和 Package 都继承自 ModelElement,因此都有 ID。所以我想写一个比较ID的函数“比较”。我想过使用泛型,但泛型数据类型没有属性“id”。有任何想法吗?