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