请问,这个问题可能以不同的形式存在,但我真的到处搜索都没有看到。
我在 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
}
最佳答案
你想要做的是:
array[1].A = X;
关于c# - 添加一个实例以引用另一个实例中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566922/