在 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
无需将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
的属性。我认为您可能将类定义与属性定义混为一谈。