繁体   English   中英

C# 用户定义类型为 class 的字段的属性

[英]C# property for fields with user-defined class type

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

class AAA
{
    public int a = 1;
}

然后再定义一个 class 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 不是 null。但是,第 3 行 (bAa = 3) 抛出 NullPointerException。

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

我的问题是是否有可能使用 C# 中的属性获得 object。

因为你已经初始化a not A bAnull

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

我认为您不需要在您的情况下声明A

请为 class 提供一个有意义的名称,而不是A .. B ..

在这里你 go 根据我在这里的评论是修复。 请记住,您的问题不清楚,所以这就是我认为您想要的。 class BBB {

public BBB()
{
A = new AAA();
}
public AAA A { set; get; }
public bool isNull()
{
   return A == null;} //will always return false
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM