C#学习教程:添加实例以引用另一个实例中的字段分享


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

对不起,这个问题可能以不同的forms存在,但我真的在各处搜索,看不到它。

我曾在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; 

它为null,因为它未初始化。

您必须初始化属性。

 class Parent { public Parent A { get; set; } public Parent B { get; set; } Parent(Parent a, Parent b) { A = a; B = b; } } 

上述就是C#学习教程:添加实例以引用另一个实例中的字段分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 Parent X = new Parent(); Parent P1 = new Parent(X, new Parent()); 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1301135.html

(0)
上一篇 2023年1月8日 下午5:49
下一篇 2023年1月8日 下午9:23

精彩推荐