2
对不起,这个问题可能以不同的形式存在,但我真的到处搜索,没有看到它。添加一个实例来引用另一个实例中的字段
我已经在C++中工作过,并且用于指针。我用C#模拟代码取代我的逻辑有问题。
这里是我的C#代码:
class Parent
{
public Parent A { get; set; }
public Parent B { get; set; }
}
static void Main(string[] args)
{
Parent P1 = new Parent();
Parent X = new Parent();
Parent[] array = new Parent[10];
array[0] = P1;
array[1] = P1.A;
array[2] = P1.B;
array[1]= X;
//I expect P1.A to be X but it is null
}
我已经看到有在C#中三分球,但有没有更好的方式来做到这一点?谢谢
编辑:
我的问题是不完整的。对不起。这是代码:
abstract class Parent
{
protected virtual int foo();
}
public class Son : Parent
{
public Parent A { get; set; }
public Parent B { get; set; }
protected override int foo()
{
return base.foo();
}
}
public class Daughter : Parent
{
public Parent A { get; set; }
public Parent B { get; set; }
}
static void Main(string[] args)
{
Son P1 = new Son();
Parent X = new Daughter();
Parent[] array = new Parent[10];
array[0] = P1;
array[1] = P1.A;
array[2] = P1.B;
array[1]= X;
//I expect P1.A to be X but it is null
}
父P1 =新父(); P1.A = new Parent(); P1.B = new Parent(); – Mariusz
@TimSchmelter你是对的我改变了它 – user1932153
@Mariusz对不起,我没有完全解释这个问题。我现在编辑 – user1932153