在 c# 中调用内部类

本文关键字:内部类 调用 | 更新日期: 2024-10-31 23:17:59

我有一个外部类,里面有一个这样的内部类:

class A
{
    public class B
    {
        public int number;
    }
}

我认为内部类很有用,因为我可以像这样调用我的"number"字段: A.B.number = X;但我不能称之为这种形状!我从A创建一个实例,例如=> A a = new A();我想通过实例直接访问B=> a.B.number;但我不能。我知道我是否从B创建一个新的;我可以访问它,但我想知道如何以这种形状调用我的字段 => A.B.number 不是b.number简而言之,我如何通过调用A类来访问B类。 (不是直接B

在 c# 中调用内部类

无需将B类描述放入A,而只需将类型为 B 的属性放入 A 中即可。

public class B 
{
    public int number;
}
public class A
{
    public A()
    {
        MyB = new B();
    }
    public B MyB { get; private set; }
}

然后,您可以执行以下操作

A myA = new A();
int num = myA.MyB.number;

虽然我建议也number B房产。

内部类只是一个类,如果你想引用它的属性,你需要有一个它的对象。

我认为,你应该做一个B的对象。

class A
{
    public B b = new B();
    public class B
    {
        public int number;
    }
}

我写这个答案是为了听取专家的意见。

class A
{
   public B b{ get; private set; }

     public A()
    {
        b= new B();
    }

    public class B
    {
        public int number;
    }
}
A a = new A();

现在您可以访问

a.b.number;

A 不会自动实例化类 B 的实例。您需要创建一个返回 B 实例的属性。

例如

public class A {
    public A() {
        this.MyB = new B()
    }
    public B MyB {get; set;}
}

然后,如果您想直接获取 b 的属性,则可以委托给B

public int BNumber 
{
    get
    {
        return MyB.number;
    }
}

话虽如此,为什么在这里想要一个嵌套类?类 B 不需要嵌套在 A 中,A 具有类型 B 的属性。我认为您可能将类定义与属性定义混为一谈。