【发布时间】:2016-02-07 18:11:04
【问题描述】:
对不起,这个问题可能以不同的形式存在,但我真的到处搜索并没有看到它。
我曾在 C++ 中工作并习惯于使用指针。我在用 C# 模拟代码替换我的逻辑时遇到问题。
这是我的 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
}
我希望数组成为未来实例的某种持有者,这些实例将直接添加到对象字段中。
【问题讨论】:
-
请避免重复您自己的问题。你之前已经问过这个问题了here
标签: c# arrays pointers reference