c# - 添加一个实例以引用另一个实例中的字段

标签 c# arrays pointers reference

请问,这个问题可能以不同的形式存在,但我真的到处搜索都没有看到。

我在 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/

相关文章:

c - 如果有的话,编译器什么时候会在指针取消引用优化方面保持保守?

c++ - 检查这是否为空

arrays - 具有数组输入的 Matlab 匿名函数

arrays - 给定从 x 点到 y 点的两条付费道路,找到最便宜的道路

c - 理解C中的指针

c# - ProjectionTo 返回 ArgumentException : Argument types do not match

c++ - 在C++中将子类插入到父类(super class)数组中

c# - 在抽象字典中使用枚举 Bastetype 作为键

c# - ASP.NET MVC 中的 jQuery 模板有哪些用例?

c# - 在 DNX PCL 中获取 ApplicationBasePath