首页 > 解决方案 > 具有用户定义的类类型的字段的 C# 属性

问题描述

首先,定义一个名为 AAA 的类:

class AAA
{
    public int a = 1;
}

然后,定义另一个类 BBB 包含一个类型为 AAA 的字段(该字段的属性 A,并且该字段已被初始化,即不为空):

class BBB
{
    private AAA a = new AAA();

    public AAA A { set; get; }
    
    public bool isNull()
    {
        return a == null;
    }
}

接下来,我在外面写了下面的代码:

BBB b = new BBB();
var flag = b.isNull();  // the value is FALSE
b.A.a = 3;              // NullPointerException

如上面的评论所述,b.isNull() 返回 FALSE。因此,字段 a 不为空。但是,第 3 行 (bAa = 3) 会引发 NullPointerException。

如果属性A可以得到字段a的指针(C#没有指针,我的意思是指向真实对象a的地址引用),就不应该抛出这个异常。

我的问题是是否可以使用 C# 中的属性获取对象。

标签: c#

解决方案


因为你已经初始化了anot Ab.Anull

但我不确定你想通过声明aA使用相同类型来实现什么。

我认为你不需要A在你的情况下申报。


推荐阅读