我无法想出这个问题的神奇搜索词,所以我会问。 代码优先,实体框架4.x
class Object1
{
// a reference to Object2, 3, 4, or 5
}
class Object2
{
}
class Object3
{
private List<Object2> data;
}
class Object4:Object3
{
}
class Object5:Object3
{
}
如何创建Object1,使其包含object2,3,5,5的对象? Object1只能引用其中一个其他对象
我一直在玩一个抽象类,然后把它推到Object 1中,但是当我公开一个从Object3迭代集合的方法时它变得笨拙。
我确信我错过了一些明显的东西,因为这一定是一个常见的问题。
根据第一个回复,我试图让问题尽可能简单并留下详细信息,所以让我重新解决问题
class Object1
{
public int i;
public string something;
public string somethingelse;
// a reference to Object2, 3, 4, or 5
}
因此它不是来自Object1的继承,而其他对象没有这些属性。 Object1将其他东西联合起来,包括Object 2,3,4,5的一个实例......但只有一个实例
答案 0 :(得分:0)
Object1类不需要引用任何其他类。您可以让每个类继承自Object1,也可以使Object2继承自Object1,Object3继承自Object2,依此类推。这取决于你想要达到的目标。
在任何一种情况下,您都可以将ObjectX传递给Object1。
public class Object1
{
public int Age { get; set; }
}
public class Object2 : Object1
{
}
public class Object3 : Object1
{
}
然后你可以这样:
public void PrintAge(Object1 obj)
{
Console.WriteLine("The age is: {0}", obj.Age);
}
var myObj = new Object3();
myObj.Age = 18;
PrintAge(myObj);