在 C# 中调用内部 class?
Call inner class in c#?
我有一个外层 class 和一个内层 class,如下所示:
class A
{
public class B
{
public int number;
}
}
我认为内部 class 很有用,因为我可以这样调用我的“number
”字段:
A.B.number = X;
但我不能称它为这个形状!
我从 A
创建一个实例,例如 => A a = new A();
我想通过实例直接访问 B
=> a.B.number;
但我不能。
我知道如果我从 B
创建一个新的;我可以访问它,但我想知道如何以这种形式调用我的字段 => A.B.number
NOT b.number
简而言之,我如何通过调用 A
class 访问 B
class。 (不是直接B
)
除了将 B
class 描述放入 A
之外,您还可以将 属性 放入 A
类型 B
].
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
in B
设为 属性。
Class A
不会自动实例化 class 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;
}
}
话虽如此,为什么要在此处嵌套 class? Class B
不需要嵌套在 A
中,因为 A
具有类型 B
的 属性。我认为您可能将 class 定义与 属性 定义混为一谈。
内部 class 只是一个 class,如果你想引用它的属性,你需要有一个对象。
我觉得,你应该做一个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;
我有一个外层 class 和一个内层 class,如下所示:
class A
{
public class B
{
public int number;
}
}
我认为内部 class 很有用,因为我可以这样调用我的“number
”字段:
A.B.number = X;
但我不能称它为这个形状!
我从 A
创建一个实例,例如 => A a = new A();
我想通过实例直接访问 B
=> a.B.number;
但我不能。
我知道如果我从 B
创建一个新的;我可以访问它,但我想知道如何以这种形式调用我的字段 => A.B.number
NOT b.number
简而言之,我如何通过调用 A
class 访问 B
class。 (不是直接B
)
除了将 B
class 描述放入 A
之外,您还可以将 属性 放入 A
类型 B
].
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
in B
设为 属性。
Class A
不会自动实例化 class 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;
}
}
话虽如此,为什么要在此处嵌套 class? Class B
不需要嵌套在 A
中,因为 A
具有类型 B
的 属性。我认为您可能将 class 定义与 属性 定义混为一谈。
内部 class 只是一个 class,如果你想引用它的属性,你需要有一个对象。
我觉得,你应该做一个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;